| """Pyrex.Distutils.extension
|
|
|
| Provides a modified Extension class, that understands how to describe
|
| Pyrex extension modules in setup scripts."""
|
|
|
| __revision__ = "$Id:$"
|
|
|
| import sys
|
| import distutils.extension as _Extension
|
|
|
|
|
| class Extension(_Extension.Extension):
|
|
|
|
|
| def __init__(self, name, sources,
|
| include_dirs=None,
|
| define_macros=None,
|
| undef_macros=None,
|
| library_dirs=None,
|
| libraries=None,
|
| runtime_library_dirs=None,
|
| extra_objects=None,
|
| extra_compile_args=None,
|
| extra_link_args=None,
|
| export_symbols=None,
|
|
|
| depends=None,
|
| language=None,
|
| cython_include_dirs=None,
|
| cython_directives=None,
|
| cython_create_listing=False,
|
| cython_line_directives=False,
|
| cython_cplus=False,
|
| cython_c_in_temp=False,
|
| cython_gen_pxi=False,
|
| cython_gdb=False,
|
| no_c_in_traceback=False,
|
| cython_compile_time_env=None,
|
| **kw):
|
|
|
|
|
| had_pyrex_options = False
|
| for key in list(kw):
|
| if key.startswith('pyrex_'):
|
| had_pyrex_options = True
|
| kw['cython' + key[5:]] = kw.pop(key)
|
| if had_pyrex_options:
|
| Extension.__init__(
|
| self, name, sources,
|
| include_dirs=include_dirs,
|
| define_macros=define_macros,
|
| undef_macros=undef_macros,
|
| library_dirs=library_dirs,
|
| libraries=libraries,
|
| runtime_library_dirs=runtime_library_dirs,
|
| extra_objects=extra_objects,
|
| extra_compile_args=extra_compile_args,
|
| extra_link_args=extra_link_args,
|
| export_symbols=export_symbols,
|
|
|
| depends=depends,
|
| language=language,
|
| no_c_in_traceback=no_c_in_traceback,
|
| **kw)
|
| return
|
|
|
| _Extension.Extension.__init__(
|
| self, name, sources,
|
| include_dirs=include_dirs,
|
| define_macros=define_macros,
|
| undef_macros=undef_macros,
|
| library_dirs=library_dirs,
|
| libraries=libraries,
|
| runtime_library_dirs=runtime_library_dirs,
|
| extra_objects=extra_objects,
|
| extra_compile_args=extra_compile_args,
|
| extra_link_args=extra_link_args,
|
| export_symbols=export_symbols,
|
|
|
| depends=depends,
|
| language=language,
|
| **kw)
|
|
|
| self.cython_include_dirs = cython_include_dirs or []
|
| self.cython_directives = cython_directives or {}
|
| self.cython_create_listing = cython_create_listing
|
| self.cython_line_directives = cython_line_directives
|
| self.cython_cplus = cython_cplus
|
| self.cython_c_in_temp = cython_c_in_temp
|
| self.cython_gen_pxi = cython_gen_pxi
|
| self.cython_gdb = cython_gdb
|
| self.no_c_in_traceback = no_c_in_traceback
|
| self.cython_compile_time_env = cython_compile_time_env
|
|
|
|
|
|
|
| read_setup_file = _Extension.read_setup_file
|
|
|
|
|
|
|
| if sys.version_info[0] < 3 and _Extension.Extension.__doc__:
|
|
|
| Extension.__doc__ = _Extension.Extension.__doc__ + """\
|
| cython_include_dirs : [string]
|
| list of directories to search for Pyrex header files (.pxd) (in
|
| Unix form for portability)
|
| cython_directives : {string:value}
|
| dict of compiler directives
|
| cython_create_listing_file : boolean
|
| write pyrex error messages to a listing (.lis) file.
|
| cython_line_directives : boolean
|
| emit pyx line numbers for debugging/profiling
|
| cython_cplus : boolean
|
| use the C++ compiler for compiling and linking.
|
| cython_c_in_temp : boolean
|
| put generated C files in temp directory.
|
| cython_gen_pxi : boolean
|
| generate .pxi file for public declarations
|
| cython_gdb : boolean
|
| generate Cython debug information for this extension for cygdb
|
| no_c_in_traceback : boolean
|
| emit the c file and line number from the traceback for exceptions
|
| """
|
|
|