Mercurial > cpython-lru_cache-weakref
annotate Lib/distutils/extension.py @ 79675:c0a2294de787 2.7
Issue #16199: Backport 2to3 typo fix from 3.2.
| author | Chris Jerdonek <chris.jerdonek@gmail.com> |
|---|---|
| date | Thu, 11 Oct 2012 16:15:46 -0700 |
| parents | a17b21c27a33 |
| children |
| rev | line source |
|---|---|
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1 """distutils.extension |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
2 |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
3 Provides the Extension class, used to describe C/C++ extension |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
4 modules in setup scripts.""" |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
5 |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
6 __revision__ = "$Id$" |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
7 |
|
59343
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
8 import os, string, sys |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
9 from types import * |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
10 |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
11 try: |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
12 import warnings |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
13 except ImportError: |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
14 warnings = None |
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
15 |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
16 # This class is really only used by the "build_ext" command, so it might |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
17 # make sense to put it in distutils.command.build_ext. However, that |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
18 # module is already big enough, and I want to make this class a bit more |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
19 # complex to simplify some common cases ("foo" module in "foo.c") and do |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
20 # better error-checking ("foo.c" actually exists). |
| 21267 | 21 # |
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
22 # Also, putting this in build_ext.py means every setup script would have to |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
23 # import that large-ish module (indirectly, through distutils.core) in |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
24 # order to do anything. |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
25 |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
26 class Extension: |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
27 """Just a collection of attributes that describes an extension |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
28 module and everything needed to build it (hopefully in a portable |
| 13948 | 29 way, but there are hooks that let you be as unportable as you need). |
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
30 |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
31 Instance attributes: |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
32 name : string |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
33 the full name of the extension, including any packages -- ie. |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
34 *not* a filename or pathname, but Python dotted name |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
35 sources : [string] |
|
12995
c910b9d9a0c0
Revised docstring so 'sources' isn't necessarily all C/C++ files (to
Greg Ward <gward@python.net>
parents:
12799
diff
changeset
|
36 list of source filenames, relative to the distribution root |
|
c910b9d9a0c0
Revised docstring so 'sources' isn't necessarily all C/C++ files (to
Greg Ward <gward@python.net>
parents:
12799
diff
changeset
|
37 (where the setup script lives), in Unix form (slash-separated) |
|
c910b9d9a0c0
Revised docstring so 'sources' isn't necessarily all C/C++ files (to
Greg Ward <gward@python.net>
parents:
12799
diff
changeset
|
38 for portability. Source files may be C, C++, SWIG (.i), |
|
c910b9d9a0c0
Revised docstring so 'sources' isn't necessarily all C/C++ files (to
Greg Ward <gward@python.net>
parents:
12799
diff
changeset
|
39 platform-specific resource files, or whatever else is recognized |
|
c910b9d9a0c0
Revised docstring so 'sources' isn't necessarily all C/C++ files (to
Greg Ward <gward@python.net>
parents:
12799
diff
changeset
|
40 by the "build_ext" command as source for a Python extension. |
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
41 include_dirs : [string] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
42 list of directories to search for C/C++ header files (in Unix |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
43 form for portability) |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
44 define_macros : [(name : string, value : string|None)] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
45 list of macros to define; each macro is defined using a 2-tuple, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
46 where 'value' is either the string to define it to or None to |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
47 define it without a particular value (equivalent of "#define |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
48 FOO" in source or -DFOO on Unix C compiler command line) |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
49 undef_macros : [string] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
50 list of macros to undefine explicitly |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
51 library_dirs : [string] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
52 list of directories to search for C/C++ libraries at link time |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
53 libraries : [string] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
54 list of library names (not filenames or paths) to link against |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
55 runtime_library_dirs : [string] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
56 list of directories to search for C/C++ libraries at run time |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
57 (for shared extensions, this is when the extension is loaded) |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
58 extra_objects : [string] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
59 list of extra files to link with (eg. object files not implied |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
60 by 'sources', static library that must be explicitly specified, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
61 binary resource files, etc.) |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
62 extra_compile_args : [string] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
63 any extra platform- and compiler-specific information to use |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
64 when compiling the source files in 'sources'. For platforms and |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
65 compilers where "command line" makes sense, this is typically a |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
66 list of command-line arguments, but for other platforms it could |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
67 be anything. |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
68 extra_link_args : [string] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
69 any extra platform- and compiler-specific information to use |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
70 when linking object files together to create the extension (or |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
71 to create a new static Python interpreter). Similar |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
72 interpretation as for 'extra_compile_args'. |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
73 export_symbols : [string] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
74 list of symbols to be exported from a shared extension. Not |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
75 used on all platforms, and not generally necessary for Python |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
76 extensions, which typically export exactly one symbol: "init" + |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
77 extension_name. |
|
33759
11d01fc650dc
Patch 1046644 - improved distutils support for SWIG.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
27416
diff
changeset
|
78 swig_opts : [string] |
|
11d01fc650dc
Patch 1046644 - improved distutils support for SWIG.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
27416
diff
changeset
|
79 any extra options to pass to SWIG if a source file has the .i |
|
11d01fc650dc
Patch 1046644 - improved distutils support for SWIG.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
27416
diff
changeset
|
80 extension. |
|
23792
7dd432e1de26
Add a new definition to Extension objects: depends.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
22663
diff
changeset
|
81 depends : [string] |
|
7dd432e1de26
Add a new definition to Extension objects: depends.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
22663
diff
changeset
|
82 list of files that the extension depends on |
|
26036
771b6f521b95
This patch fixes the following bugs:
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
23792
diff
changeset
|
83 language : string |
|
771b6f521b95
This patch fixes the following bugs:
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
23792
diff
changeset
|
84 extension language (i.e. "c", "c++", "objc"). Will be detected |
|
771b6f521b95
This patch fixes the following bugs:
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
23792
diff
changeset
|
85 from the source extensions if not provided. |
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
86 """ |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
87 |
|
27416
20df24a13349
Remove the recently-added get_distutil_options(), and just
Andrew M. Kuchling <amk@amk.ca>
parents:
26444
diff
changeset
|
88 # When adding arguments to this constructor, be sure to update |
|
20df24a13349
Remove the recently-added get_distutil_options(), and just
Andrew M. Kuchling <amk@amk.ca>
parents:
26444
diff
changeset
|
89 # setup_keywords in core.py. |
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
90 def __init__ (self, name, sources, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
91 include_dirs=None, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
92 define_macros=None, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
93 undef_macros=None, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
94 library_dirs=None, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
95 libraries=None, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
96 runtime_library_dirs=None, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
97 extra_objects=None, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
98 extra_compile_args=None, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
99 extra_link_args=None, |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
100 export_symbols=None, |
|
33759
11d01fc650dc
Patch 1046644 - improved distutils support for SWIG.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
27416
diff
changeset
|
101 swig_opts = None, |
|
23792
7dd432e1de26
Add a new definition to Extension objects: depends.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
22663
diff
changeset
|
102 depends=None, |
|
26036
771b6f521b95
This patch fixes the following bugs:
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
23792
diff
changeset
|
103 language=None, |
|
26198
1df98f68d607
Allow unknown keyword arguments to the Extension class, and warn about them.
Andrew M. Kuchling <amk@amk.ca>
parents:
26036
diff
changeset
|
104 **kw # To catch unknown keywords |
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
105 ): |
|
59343
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
106 assert type(name) is StringType, "'name' must be a string" |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
107 assert (type(sources) is ListType and |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
108 map(type, sources) == [StringType]*len(sources)), \ |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
109 "'sources' must be a list of strings" |
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
110 |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
111 self.name = name |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
112 self.sources = sources |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
113 self.include_dirs = include_dirs or [] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
114 self.define_macros = define_macros or [] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
115 self.undef_macros = undef_macros or [] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
116 self.library_dirs = library_dirs or [] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
117 self.libraries = libraries or [] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
118 self.runtime_library_dirs = runtime_library_dirs or [] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
119 self.extra_objects = extra_objects or [] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
120 self.extra_compile_args = extra_compile_args or [] |
|
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
121 self.extra_link_args = extra_link_args or [] |
|
13949
28afbc5e0770
Rene Liebscher: ext.export_symbols is now always a list (added 'or []').
Greg Ward <gward@python.net>
parents:
13948
diff
changeset
|
122 self.export_symbols = export_symbols or [] |
|
33759
11d01fc650dc
Patch 1046644 - improved distutils support for SWIG.
Anthony Baxter <anthonybaxter@gmail.com>
parents:
27416
diff
changeset
|
123 self.swig_opts = swig_opts or [] |
|
23792
7dd432e1de26
Add a new definition to Extension objects: depends.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
22663
diff
changeset
|
124 self.depends = depends or [] |
|
26036
771b6f521b95
This patch fixes the following bugs:
Gustavo Niemeyer <gustavo@niemeyer.net>
parents:
23792
diff
changeset
|
125 self.language = language |
|
12799
d81c95dd4039
Provides the Extension class, a nicer way to describe C/C++ extensions than
Greg Ward <gward@python.net>
parents:
diff
changeset
|
126 |
|
26198
1df98f68d607
Allow unknown keyword arguments to the Extension class, and warn about them.
Andrew M. Kuchling <amk@amk.ca>
parents:
26036
diff
changeset
|
127 # If there are unknown keyword options, warn about them |
|
59343
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
128 if len(kw): |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
129 L = kw.keys() ; L.sort() |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
130 L = map(repr, L) |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
131 msg = "Unknown Extension options: " + string.join(L, ', ') |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
132 if warnings is not None: |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
133 warnings.warn(msg) |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
134 else: |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
135 sys.stderr.write(msg + '\n') |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
136 # class Extension |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
137 |
|
54532
98d8b8b749f4
added some tests for distutils.extension + code cleanup
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
52606
diff
changeset
|
138 |
|
59343
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
139 def read_setup_file (filename): |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
140 from distutils.sysconfig import \ |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
141 parse_makefile, expand_makefile_vars, _variable_rx |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
142 from distutils.text_file import TextFile |
|
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
143 from distutils.util import split_quoted |
|
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
144 |
|
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
145 # First pass over the file to gather "VAR = VALUE" assignments. |
|
59343
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
146 vars = parse_makefile(filename) |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
147 |
|
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
148 # Second pass to gobble up the real content: lines of the form |
|
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
149 # <module> ... [<sourcefile> ...] [<cpparg> ...] [<library> ...] |
|
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
150 file = TextFile(filename, |
|
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
151 strip_comments=1, skip_blanks=1, join_lines=1, |
|
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
152 lstrip_ws=1, rstrip_ws=1) |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
153 try: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
154 extensions = [] |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
155 |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
156 while 1: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
157 line = file.readline() |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
158 if line is None: # eof |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
159 break |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
160 if _variable_rx.match(line): # VAR=VALUE, handled in first pass |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
161 continue |
|
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
162 |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
163 if line[0] == line[-1] == "*": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
164 file.warn("'%s' lines not handled yet" % line) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
165 continue |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
166 |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
167 #print "original line: " + line |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
168 line = expand_makefile_vars(line, vars) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
169 words = split_quoted(line) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
170 #print "expanded line: " + line |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
171 |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
172 # NB. this parses a slightly different syntax than the old |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
173 # makesetup script: here, there must be exactly one extension per |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
174 # line, and it must be the first word of the line. I have no idea |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
175 # why the old syntax supported multiple extensions per line, as |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
176 # they all wind up being the same. |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
177 |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
178 module = words[0] |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
179 ext = Extension(module, []) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
180 append_next_word = None |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
181 |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
182 for word in words[1:]: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
183 if append_next_word is not None: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
184 append_next_word.append(word) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
185 append_next_word = None |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
186 continue |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
187 |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
188 suffix = os.path.splitext(word)[1] |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
189 switch = word[0:2] ; value = word[2:] |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
190 |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
191 if suffix in (".c", ".cc", ".cpp", ".cxx", ".c++", ".m", ".mm"): |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
192 # hmm, should we do something about C vs. C++ sources? |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
193 # or leave it up to the CCompiler implementation to |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
194 # worry about? |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
195 ext.sources.append(word) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
196 elif switch == "-I": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
197 ext.include_dirs.append(value) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
198 elif switch == "-D": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
199 equals = string.find(value, "=") |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
200 if equals == -1: # bare "-DFOO" -- no value |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
201 ext.define_macros.append((value, None)) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
202 else: # "-DFOO=blah" |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
203 ext.define_macros.append((value[0:equals], |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
204 value[equals+2:])) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
205 elif switch == "-U": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
206 ext.undef_macros.append(value) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
207 elif switch == "-C": # only here 'cause makesetup has it! |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
208 ext.extra_compile_args.append(word) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
209 elif switch == "-l": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
210 ext.libraries.append(value) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
211 elif switch == "-L": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
212 ext.library_dirs.append(value) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
213 elif switch == "-R": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
214 ext.runtime_library_dirs.append(value) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
215 elif word == "-rpath": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
216 append_next_word = ext.runtime_library_dirs |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
217 elif word == "-Xlinker": |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
218 append_next_word = ext.extra_link_args |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
219 elif word == "-Xcompiler": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
220 append_next_word = ext.extra_compile_args |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
221 elif switch == "-u": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
222 ext.extra_link_args.append(word) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
223 if not value: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
224 append_next_word = ext.extra_link_args |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
225 elif word == "-Xcompiler": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
226 append_next_word = ext.extra_compile_args |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
227 elif switch == "-u": |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
228 ext.extra_link_args.append(word) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
229 if not value: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
230 append_next_word = ext.extra_link_args |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
231 elif suffix in (".a", ".so", ".sl", ".o", ".dylib"): |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
232 # NB. a really faithful emulation of makesetup would |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
233 # append a .o file to extra_objects only if it |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
234 # had a slash in it; otherwise, it would s/.o/.c/ |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
235 # and append it to sources. Hmmmm. |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
236 ext.extra_objects.append(word) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
237 else: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
238 file.warn("unrecognized argument '%s'" % word) |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
239 |
|
66008
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
240 extensions.append(ext) |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
241 finally: |
|
a17b21c27a33
Merged revisions 86223-86224,86226,86234 via svnmerge from
Éric Araujo <merwok@netwok.org>
parents:
59343
diff
changeset
|
242 file.close() |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
243 |
|
59343
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
244 #print "module:", module |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
245 #print "source files:", source_files |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
246 #print "cpp args:", cpp_args |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
247 #print "lib args:", library_args |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
248 |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
249 #extensions[module] = { 'sources': source_files, |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
250 # 'cpp_args': cpp_args, |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
251 # 'lib_args': library_args } |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
252 |
|
14650
edda353bde12
Added 'read_setup_file()' to read old-style Setup files. Could make life
Greg Ward <gward@python.net>
parents:
13949
diff
changeset
|
253 return extensions |
|
59343
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
254 |
|
ad22bc22dddc
reverting partially distutils to its 2.6.x state so 2.7a4 looks more like the 2.7b1 in this. the whole revert will occur after a4 is tagged
Tarek Ziadé <ziade.tarek@gmail.com>
parents:
58450
diff
changeset
|
255 # read_setup_file () |
