ž Ť˙f_(c@sMdZddlZddlZddlZGdd„dƒZdd„ZdS(umdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.iNcBsP|EeZdZdZdddddddddddddddd„ZdS(u Extensionuß 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. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. cKs…t|tƒstdƒ‚nt|tƒoCtdd„|DƒƒsUtdƒ‚n||_||_|ppg|_|pg|_|pŽg|_ |pg|_ |pŹg|_ |pťg|_ | pĘg|_ | pŮg|_| pčg|_| p÷g|_| pg|_|pg|_||_||_t|ƒdkrdd„|Dƒ}djt|ƒƒ}d |}tj|ƒndS( Nu'name' must be a stringcss|]}t|tƒVqdS(N(u isinstanceustr(u.0uv((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu ksu%Extension.__init__..u#'sources' must be a list of stringsicSsg|]}t|ƒ‘qS((urepr(u.0uoption((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu s u&Extension.__init__..u, uUnknown Extension options: %s(u isinstanceustruAssertionErrorulistuallunameusourcesu include_dirsu define_macrosu undef_macrosu library_dirsu librariesuruntime_library_dirsu extra_objectsuextra_compile_argsuextra_link_argsuexport_symbolsu swig_optsudependsulanguageuoptionalulenujoinusorteduwarningsuwarn(uselfunameusourcesu include_dirsu define_macrosu undef_macrosu library_dirsu librariesuruntime_library_dirsu extra_objectsuextra_compile_argsuextra_link_argsuexport_symbolsu swig_optsudependsulanguageuoptionalukwuoptionsumsg((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu__init__Ws4     uExtension.__init__N(u__name__u __module__u __qualname__u__doc__uNoneu__init__(u __locals__((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu Extensions?u ExtensioncCs°ddlm}m}m}ddlm}ddlm}||ƒ}||ddddddd dd dƒ}z,g}x|jƒ} | d kršPn|j | ƒrŻq~n| d| d(koÎd knrę|j d | ƒq~n|| |ƒ} || ƒ} | d} t | gƒ} d } xf| dd …D]T}| d k r`| j |ƒd } q5ntjj|ƒd}|dd…}|dd …}|d)krľ| jj |ƒq5|dkrÔ| jj |ƒq5|dkrE|jdƒ}|d*kr| jj |d fƒq‰| jj |d|…||dd …fƒq5|dkrd| jj |ƒq5|dkrƒ| jj |ƒq5|dkr˘| jj |ƒq5|dkrÁ| jj |ƒq5|dkrŕ| jj |ƒq5|dkrř| j} q5|dkr| j} q5|d kr(| j} q5|d!krY| jj |ƒ|s‰| j} q‰q5|d+krx| jj |ƒq5|j d'|ƒq5W|j | ƒq~Wd |jƒX|S(,u3Reads a Setup file and returns Extension instances.i(uparse_makefileuexpand_makefile_varsu _variable_rx(uTextFile(u split_quotedustrip_commentsiu skip_blanksu join_linesu lstrip_wsu rstrip_wsu*u'%s' lines not handled yetNiu.cu.ccu.cppu.cxxu.c++u.mu.mmu-Iu-Du=u-Uu-Cu-lu-Lu-Ru-rpathu-Xlinkeru -Xcompileru-uu.au.sou.slu.ou.dylibuunrecognized argument '%s'i˙˙˙˙(u.cu.ccu.cppu.cxxu.c++u.mu.mmi˙˙˙˙(u.au.sou.slu.ou.dylib(udistutils.sysconfiguparse_makefileuexpand_makefile_varsu _variable_rxudistutils.text_fileuTextFileudistutils.utilu split_quotedureadlineuNoneumatchuwarnu Extensionuappenduosupathusplitextusourcesu include_dirsufindu define_macrosu undef_macrosuextra_compile_argsu librariesu library_dirsuruntime_library_dirsuextra_link_argsu extra_objectsuclose(ufilenameuparse_makefileuexpand_makefile_varsu _variable_rxuTextFileu split_quoteduvarsufileu extensionsulineuwordsumoduleuextuappend_next_worduwordusuffixuswitchuvalueuequals((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyuread_setup_file†s†    $                      uread_setup_file(u__doc__uosusysuwarningsu Extensionuread_setup_file(((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyus    r