Changeset 294 for pyyaml/trunk/setup.py


Ignore:
Timestamp:
10/01/08 22:40:48 (6 years ago)
Author:
xi
Message:

Python 2.3 and win32 compatibility fixes in setup.py.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pyyaml/trunk/setup.py

    r292 r294  
    5656from distutils.dir_util import mkpath 
    5757from distutils.command.build_ext import build_ext as _build_ext 
    58 from distutils.errors import CompileError, LinkError 
     58from distutils.errors import CompileError, LinkError, DistutilsPlatformError 
    5959 
    6060try: 
     
    7474        if not self.ext_modules: 
    7575            return 
    76         for ext in reversed(self.ext_modules): 
     76        for idx in range(len(self.ext_modules)-1, -1, -1): 
     77            ext = self.ext_modules[idx] 
    7778            if not isinstance(ext, Extension): 
    7879                continue 
     
    9697            for filename in sources[:]: 
    9798                base, ext = os.path.splitext(filename) 
    98                 if ext == 'pyx': 
    99                     sources.replace(filename, '%s.c' % base) 
     99                if ext == '.pyx': 
     100                    sources.remove(filename) 
     101                    sources.append('%s.c' % base) 
    100102        _Extension.__init__(self, name, sources, **kwds) 
    101103        self.feature_name = feature_name 
     
    108110 
    109111class build_ext(_build_ext): 
     112 
     113    def run(self): 
     114        optional = True 
     115        disabled = True 
     116        for ext in self.extensions: 
     117            if isinstance(ext, Extension): 
     118                with_ext = getattr(self.distribution, ext.attr_name) 
     119                if with_ext is None: 
     120                    disabled = False 
     121                elif with_ext: 
     122                    optional = False 
     123                    disabled = False 
     124            else: 
     125                optional = False 
     126                disabled = False 
     127                break 
     128        if disabled: 
     129            return 
     130        try: 
     131            _build_ext.run(self) 
     132        except DistutilsPlatformError, exc: 
     133            if optional: 
     134                log.warn(str(exc)) 
     135                log.warn("skipping build_ext") 
     136            else: 
     137                raise 
    110138 
    111139    def get_source_files(self): 
     
    221249        packages=['yaml'], 
    222250        ext_modules=[ 
    223             Extension('yaml/_yaml', ['ext/_yaml.pyx'], 
     251            Extension('_yaml', ['ext/_yaml.pyx'], 
    224252                'libyaml', "LibYAML bindings", LIBYAML_CHECK, 
    225253                libraries=['yaml']), 
Note: See TracChangeset for help on using the changeset viewer.