�
��c@s�dZdZddkZddkZddkZddkTyddkZWnej
o
dZnXddd��YZ d�Z
dS( smdistutils.extension
Provides the Extension class, used to describe C/C++ extension
modules in setup scripts.s<$Id: extension.py 37623 2004-10-14 10:02:08Z anthonybaxter $i�N(t*t ExtensioncBs>eZdZdddddddddddddd�ZRS(s4Just a collection of attributes that describes an extension
module and everything needed to build it (hopefully in a portable
way, but there are hooks that let you be as unportable as you need).
Instance attributes:
name : string
the full name of the extension, including any packages -- ie.
*not* a filename or pathname, but Python dotted name
sources : [string]
list of source filenames, relative to the distribution root
(where the setup script lives), in Unix form (slash-separated)
for portability. Source files may be C, C++, SWIG (.i),
platform-specific resource files, or whatever else is recognized
by the "build_ext" command as source for a Python extension.
include_dirs : [string]
list of directories to search for C/C++ header files (in Unix
form for portability)
define_macros : [(name : string, value : string|None)]
list of macros to define; each macro is defined using a 2-tuple,
where 'value' is either the string to define it to or None to
define it without a particular value (equivalent of "#define
FOO" in source or -DFOO on Unix C compiler command line)
undef_macros : [string]
list of macros to undefine explicitly
library_dirs : [string]
list of directories to search for C/C++ libraries at link time
libraries : [string]
list of library names (not filenames or paths) to link against
runtime_library_dirs : [string]
list of directories to search for C/C++ libraries at run time
(for shared extensions, this is when the extension is loaded)
extra_objects : [string]
list of extra files to link with (eg. object files not implied
by 'sources', static library that must be explicitly specified,
binary resource files, etc.)
extra_compile_args : [string]
any extra platform- and compiler-specific information to use
when compiling the source files in 'sources'. For platforms and
compilers where "command line" makes sense, this is typically a
list of command-line arguments, but for other platforms it could
be anything.
extra_link_args : [string]
any extra platform- and compiler-specific information to use
when linking object files together to create the extension (or
to create a new static Python interpreter). Similar
interpretation as for 'extra_compile_args'.
export_symbols : [string]
list of symbols to be exported from a shared extension. Not
used on all platforms, and not generally necessary for Python
extensions, which typically export exactly one symbol: "init" +
extension_name.
swig_opts : [string]
any extra options to pass to SWIG if a source file has the .i
extension.
depends : [string]
list of files that the extension depends on
language : string
extension language (i.e. "c", "c++", "objc"). Will be detected
from the source extensions if not provided.
cKs�t|�tjp
td�t|�tjo#tt|�tgt|�jp
td�||_||_|pg|_|pg|_ |pg|_
|pg|_|pg|_|pg|_
| pg|_|
pg|_|pg|_|pg|_|
pg|_|pg|_||_t|�oq|i�}|i�tt|�}dti|d�}tdj oti|�q�tii|d�ndS(Ns'name' must be a strings#'sources' must be a list of stringssUnknown Extension options: s, s
( ttypet
StringTypetAssertionErrortListTypetmaptlentnametsourcestinclude_dirst
define_macrostundef_macrostlibrary_dirst librariestruntime_library_dirst
extra_objectstextra_compile_argstextra_link_argstexport_symbolst swig_optstdependstlanguagetkeystsorttreprtstringtjointwarningstNonetwarntsyststderrtwrite(tselfRR R
RRR
RRRRRRRRRtkwtLtmsg((s&/sys/lib/python/distutils/extension.pyt__init__Zs4&
N(t__name__t
__module__t__doc__RR&(((s&/sys/lib/python/distutils/extension.pyRs<cCs�ddkl}l}l}ddkl}ddkl}||�}||ddddddd dd
d�}g}x1|i�} | djoPn|i
| �oq{n| d| djo
djno|id
| �q{n|| |�} || �}
|
d}t|g�}d}
xq|
dD]e}|
dj o|
i
|�d}
q3ntii|�d}|dd!}|d}|d(jo|ii
|�q3|djo|ii
|�q3|djobti|d�}|djo|ii
|df�q�|ii
|d|!||df�q3|djo|ii
|�q3|djo|ii
|�q3|djo|ii
|�q3|djo|ii
|�q3|djo|ii
|�q3|djo
|i}
q3|djo
|i}
q3|d jo
|i}
q3|d!jo(|ii
|�|p
|i}
q�q3|d)jo|ii
|�q3|id'|�q3W|i
|�q{|S(*Ni�(tparse_makefiletexpand_makefile_varst_variable_rx(tTextFile(tsplit_quotedtstrip_commentsitskip_blankst
join_linest lstrip_wst rstrip_wsiRs'%s' lines not handled yetis.cs.ccs.cpps.cxxs.c++s.ms.mms-Is-Dt=s-Us-Cs-ls-Ls-Rs-rpaths-Xlinkers
-Xcompilers-us.as.sos.sls.os.dylibsunrecognized argument '%s'(s.cs.ccs.cpps.cxxs.c++s.ms.mm(s.as.sos.sls.os.dylib(tdistutils.sysconfigR*R+R,tdistutils.text_fileR-tdistutils.utilR.treadlineRtmatchRRtappendtostpathtsplitextR R
RtfindRRRRR
RRR(tfilenameR*R+R,R-R.tvarstfilet
extensionstlinetwordstmoduletexttappend_next_wordtwordtsuffixtswitchtvaluetequals((s&/sys/lib/python/distutils/extension.pytread_setup_file�s�
&
((R)t__revision__R;RRttypesRtImportErrorRRRM(((s&/sys/lib/python/distutils/extension.pys<module>s$
q
|