Commit df2b00a7 authored by Chuck Blake's avatar Chuck Blake

Add control of --line-directives to Distutils build_ext

parent 456458ab
...@@ -36,6 +36,8 @@ class build_ext(_build_ext.build_ext): ...@@ -36,6 +36,8 @@ class build_ext(_build_ext.build_ext):
"generate C++ source files"), "generate C++ source files"),
('pyrex-create-listing', None, ('pyrex-create-listing', None,
"write errors to a listing file"), "write errors to a listing file"),
('pyrex-line-directives', None,
"emit source line directives"),
('pyrex-include-dirs=', None, ('pyrex-include-dirs=', None,
"path to the Cython include files" + sep_by), "path to the Cython include files" + sep_by),
('pyrex-c-in-temp', None, ('pyrex-c-in-temp', None,
...@@ -45,13 +47,14 @@ class build_ext(_build_ext.build_ext): ...@@ -45,13 +47,14 @@ class build_ext(_build_ext.build_ext):
]) ])
boolean_options.extend([ 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): def initialize_options(self):
_build_ext.build_ext.initialize_options(self) _build_ext.build_ext.initialize_options(self)
self.pyrex_cplus = 0 self.pyrex_cplus = 0
self.pyrex_create_listing = 0 self.pyrex_create_listing = 0
self.pyrex_line_directives = 0
self.pyrex_include_dirs = None self.pyrex_include_dirs = None
self.pyrex_c_in_temp = 0 self.pyrex_c_in_temp = 0
self.pyrex_gen_pxi = 0 self.pyrex_gen_pxi = 0
...@@ -114,6 +117,8 @@ class build_ext(_build_ext.build_ext): ...@@ -114,6 +117,8 @@ class build_ext(_build_ext.build_ext):
create_listing = self.pyrex_create_listing or \ create_listing = self.pyrex_create_listing or \
getattr(extension, 'pyrex_create_listing', 0) 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 \ cplus = self.pyrex_cplus or getattr(extension, 'pyrex_cplus', 0) or \
(extension.language and extension.language.lower() == 'c++') (extension.language and extension.language.lower() == 'c++')
pyrex_gen_pxi = self.pyrex_gen_pxi or getattr(extension, 'pyrex_gen_pxi', 0) 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): ...@@ -186,6 +191,7 @@ class build_ext(_build_ext.build_ext):
include_path = includes, include_path = includes,
output_file = target, output_file = target,
cplus = cplus, cplus = cplus,
emit_linenums = line_directives,
generate_pxi = pyrex_gen_pxi) generate_pxi = pyrex_gen_pxi)
result = cython_compile(source, options=options, result = cython_compile(source, options=options,
full_module_name=module_name) full_module_name=module_name)
......
...@@ -21,6 +21,8 @@ class Extension(_Extension.Extension): ...@@ -21,6 +21,8 @@ class Extension(_Extension.Extension):
Unix form for portability) Unix form for portability)
pyrex_create_listing_file : boolean pyrex_create_listing_file : boolean
write pyrex error messages to a listing (.lis) file. write pyrex error messages to a listing (.lis) file.
pyrex_line_directivess : boolean
emit pyx line numbers for debugging/profiling
pyrex_cplus : boolean pyrex_cplus : boolean
use the C++ compiler for compiling and linking. use the C++ compiler for compiling and linking.
pyrex_c_in_temp : boolean pyrex_c_in_temp : boolean
...@@ -47,6 +49,7 @@ class Extension(_Extension.Extension): ...@@ -47,6 +49,7 @@ class Extension(_Extension.Extension):
language = None, language = None,
pyrex_include_dirs = None, pyrex_include_dirs = None,
pyrex_create_listing = 0, pyrex_create_listing = 0,
pyrex_line_directives = 0,
pyrex_cplus = 0, pyrex_cplus = 0,
pyrex_c_in_temp = 0, pyrex_c_in_temp = 0,
pyrex_gen_pxi = 0, pyrex_gen_pxi = 0,
...@@ -70,6 +73,7 @@ class Extension(_Extension.Extension): ...@@ -70,6 +73,7 @@ class Extension(_Extension.Extension):
self.pyrex_include_dirs = pyrex_include_dirs or [] self.pyrex_include_dirs = pyrex_include_dirs or []
self.pyrex_create_listing = pyrex_create_listing self.pyrex_create_listing = pyrex_create_listing
self.pyrex_line_directives = pyrex_line_directives
self.pyrex_cplus = pyrex_cplus self.pyrex_cplus = pyrex_cplus
self.pyrex_c_in_temp = pyrex_c_in_temp self.pyrex_c_in_temp = pyrex_c_in_temp
self.pyrex_gen_pxi = pyrex_gen_pxi self.pyrex_gen_pxi = pyrex_gen_pxi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment