mò &U²Ic@swdZdZdkZdkZdkZdkTy dkZWnej o dZnXdfd„ƒ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 $N(t*t ExtensioncBs>tZdZeeeeeeeeeeeeed„ ZRS(s4 Just 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¶t!i"i#|dƒndS(Ns'name' must be a strings#'sources' must be a list of stringssUnknown Extension options: s, s ($ttypetnamet StringTypetAssertionErrortsourcestListTypetmaptlentselft include_dirst define_macrost undef_macrost library_dirst librariestruntime_library_dirst extra_objectstextra_compile_argstextra_link_argstexport_symbolst swig_optstdependstlanguagetkwtkeystLtsorttreprtstringtjointmsgtwarningstNonetwarntsyststderrtwrite(R RRR R R RRRRRRRRRRRRR((t0/data/zmath/lib/python2.4/distutils/extension.pyt__init__Zs0@     (t__name__t __module__t__doc__R!R'(((R&Rs <c Cs©dkl} l} l} dkl}dkl}| |ƒ}||ddddddddd dƒ}g}x3|i ƒ}|djoPn| i|ƒoqrn|d |d jo d jno|id |ƒqrn| ||ƒ}||ƒ} | d }t|gƒ}d}xq| dD]e}|dj o|i|ƒd}q*ntii|ƒd}|d d!}|d}|d(jo|ii|ƒq*|djo|ii|ƒq*|djobt i!|dƒ} | d jo|i#i|dfƒq|i#i|d | !|| dfƒq*|djo|i$i|ƒq*|djo|i%i|ƒq*|djo|i&i|ƒq*|djo|i'i|ƒq*|djo|i(i|ƒq*|djo |i(}q*|djo |i)}q*|d jo |i%}q*|d!jo(|i)i|ƒ|p |i)}qq*|d)jo|i*i|ƒq*|id'|ƒq*W|i|ƒqrW|S(*N(sparse_makefilesexpand_makefile_varss _variable_rx(sTextFile(s split_quotedtstrip_commentsit skip_blankst join_linest lstrip_wst rstrip_wsiiÿÿÿÿRs'%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.sysconfigtparse_makefiletexpand_makefile_varst _variable_rxtdistutils.text_filetTextFiletdistutils.utilt split_quotedtfilenametvarstfilet extensionstreadlinetlineR!tmatchR"twordstmoduleRtexttappend_next_wordtwordtappendtostpathtsplitexttsuffixtswitchtvalueRR RtfindtequalsR R RRRRRR(R9RIR:RARCR;R8R6RBR3R4R2RMR@R>RDRKRJR<((R&tread_setup_file‹s‚     &        )              ( R*t __revision__RFRR#ttypesR t ImportErrorR!RRN(RORRR RNR#RF((R&t?s  q