From: Chuck Blake Date: Thu, 10 Jun 2010 14:36:41 +0000 (-0300) Subject: Add control of --line-directives to Distutils build_ext X-Git-Tag: 0.13.beta0~48 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=df2b00a7189ff685aafaeff34089a9df8be4aaac;p=cython.git Add control of --line-directives to Distutils build_ext --- diff --git a/Cython/Distutils/build_ext.py b/Cython/Distutils/build_ext.py index fadeaae4..1f11ca7f 100644 --- a/Cython/Distutils/build_ext.py +++ b/Cython/Distutils/build_ext.py @@ -36,6 +36,8 @@ class build_ext(_build_ext.build_ext): "generate C++ source files"), ('pyrex-create-listing', None, "write errors to a listing file"), + ('pyrex-line-directives', None, + "emit source line directives"), ('pyrex-include-dirs=', None, "path to the Cython include files" + sep_by), ('pyrex-c-in-temp', None, @@ -45,13 +47,14 @@ class build_ext(_build_ext.build_ext): ]) boolean_options.extend([ - 'pyrex-cplus', 'pyrex-create-listing', 'pyrex-c-in-temp' + 'pyrex-cplus', 'pyrex-create-listing', 'pyrex-line-directives', 'pyrex-c-in-temp' ]) def initialize_options(self): _build_ext.build_ext.initialize_options(self) self.pyrex_cplus = 0 self.pyrex_create_listing = 0 + self.pyrex_line_directives = 0 self.pyrex_include_dirs = None self.pyrex_c_in_temp = 0 self.pyrex_gen_pxi = 0 @@ -114,6 +117,8 @@ class build_ext(_build_ext.build_ext): create_listing = self.pyrex_create_listing or \ getattr(extension, 'pyrex_create_listing', 0) + line_directives = self.pyrex_line_directives or \ + getattr(extension, 'pyrex_line_directives', 0) cplus = self.pyrex_cplus or getattr(extension, 'pyrex_cplus', 0) or \ (extension.language and extension.language.lower() == 'c++') pyrex_gen_pxi = self.pyrex_gen_pxi or getattr(extension, 'pyrex_gen_pxi', 0) @@ -186,6 +191,7 @@ class build_ext(_build_ext.build_ext): include_path = includes, output_file = target, cplus = cplus, + emit_linenums = line_directives, generate_pxi = pyrex_gen_pxi) result = cython_compile(source, options=options, full_module_name=module_name) diff --git a/Cython/Distutils/extension.py b/Cython/Distutils/extension.py index b9b73755..e781c3e7 100644 --- a/Cython/Distutils/extension.py +++ b/Cython/Distutils/extension.py @@ -21,6 +21,8 @@ class Extension(_Extension.Extension): Unix form for portability) pyrex_create_listing_file : boolean write pyrex error messages to a listing (.lis) file. + pyrex_line_directivess : boolean + emit pyx line numbers for debugging/profiling pyrex_cplus : boolean use the C++ compiler for compiling and linking. pyrex_c_in_temp : boolean @@ -47,6 +49,7 @@ class Extension(_Extension.Extension): language = None, pyrex_include_dirs = None, pyrex_create_listing = 0, + pyrex_line_directives = 0, pyrex_cplus = 0, pyrex_c_in_temp = 0, pyrex_gen_pxi = 0, @@ -70,6 +73,7 @@ class Extension(_Extension.Extension): self.pyrex_include_dirs = pyrex_include_dirs or [] self.pyrex_create_listing = pyrex_create_listing + self.pyrex_line_directives = pyrex_line_directives self.pyrex_cplus = pyrex_cplus self.pyrex_c_in_temp = pyrex_c_in_temp self.pyrex_gen_pxi = pyrex_gen_pxi