On 8 June 2010 10:23, Chuck Blake <[email protected]> wrote: > Hey, guys. I did this a long time ago, but it patches cleanly against the > cython-devel tip (at least yesterday's tip). > > There was some discussion of what the default should be for the #line/#file > directives Robert added. This is a hopefully non-contentious addition to > support pushing that decision to higher levels of the build system. > > All this patch does is add pyrex_line_directives to support that. It's > an analogue of the extra attributes .pyrex_include_dirs going with -I, > or .pyrex_cplus going with the --cplus command option, etc. > > This allows you to add .pyrex_line_directives to Extension() objects in > your setup.py. The appropriate command option is then added to the > invocations of cython for those extensions, as it is for the -I/--cplus/.. > options. > > -------------------------------------------------------------------------- > diff -r dd29215de4a0 Cython/Distutils/build_ext.py > --- a/Cython/Distutils/build_ext.py Mon Jun 07 11:06:45 2010 -0700 > +++ b/Cython/Distutils/build_ext.py Mon Jun 07 16:45:43 2010 -0400 > @@ -36,6 +36,8 @@ > "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 @@ > ]) > > 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 @@ > > 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 @@ > 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 -r dd29215de4a0 Cython/Distutils/extension.py > --- a/Cython/Distutils/extension.py Mon Jun 07 11:06:45 2010 -0700 > +++ b/Cython/Distutils/extension.py Mon Jun 07 16:45:43 2010 -0400 > @@ -21,6 +21,8 @@ > 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 > @@ -70,6 +72,7 @@ > > 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 > _______________________________________________ > Cython-dev mailing list > [email protected] > http://codespeak.net/mailman/listinfo/cython-dev >
Looks fine. Could you generate the patch with hg export and send it attached? -- Lisandro Dalcin --------------- CIMEC (INTEC/CONICET-UNL) Predio CONICET-Santa Fe Colectora RN 168 Km 472, Paraje El Pozo Tel: +54-342-4511594 (ext 1011) Tel/Fax: +54-342-4511169 _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
