diff options
Diffstat (limited to 'setuptools/extension.py')
-rw-r--r-- | setuptools/extension.py | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/setuptools/extension.py b/setuptools/extension.py index 37b62576..33b870f0 100644 --- a/setuptools/extension.py +++ b/setuptools/extension.py @@ -1,19 +1,20 @@ from distutils.core import Extension as _Extension +from dist import _get_unpatched +_Extension = _get_unpatched(_Extension) try: from Pyrex.Distutils.build_ext import build_ext - except ImportError: + have_pyrex = False +else: + have_pyrex = True - # Pyrex isn't around, so fix up the sources - - from dist import _get_unpatched - _Extension = _get_unpatched(_Extension) - - class Extension(_Extension): - """Extension that uses '.c' files in place of '.pyx' files""" +class Extension(_Extension): + """Extension that uses '.c' files in place of '.pyx' files""" + if not have_pyrex: + # convert .pyx extensions to .c def __init__(self,*args,**kw): _Extension.__init__(self,*args,**kw) sources = [] @@ -24,14 +25,12 @@ except ImportError: sources.append(s) self.sources = sources - import sys, distutils.core, distutils.extension - distutils.core.Extension = Extension - distutils.extension.Extension = Extension - if 'distutils.command.build_ext' in sys.modules: - sys.modules['distutils.command.build_ext'].Extension = Extension - -else: +class SharedLibrary(Extension): + """Just like a regular Extension, but built as a shared library instead""" - # Pyrex is here, just use regular extension type - Extension = _Extension +import sys, distutils.core, distutils.extension +distutils.core.Extension = Extension +distutils.extension.Extension = Extension +if 'distutils.command.build_ext' in sys.modules: + sys.modules['distutils.command.build_ext'].Extension = Extension |