Plan 9 from Bell Labs’s /usr/web/sources/contrib/jas/root/sys/lib/python2.7/distutils/extension.pyc

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


��Qc@s�dZdZddlZddlZddlZddlTyddlZWnek
rcdZnXddd��YZ	d�Z
dS(	smdistutils.extension

Provides the Extension class, used to describe C/C++ extension
modules in setup scripts.s$Id$i�N(t*t	ExtensioncBs>eZdZdddddddddddddd�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|�tkstd��t|�tkrRtt|�tgt|�ks^td��||_||_|pyg|_|p�g|_	|p�g|_
|p�g|_|p�g|_|p�g|_
|	p�g|_|
p�|_|p�|_|pg|_|
pg|_|pg|_||_t|�r�|j�}|j�tt|�}dtj|d�}tdk	r�tj|�q�tjj|d�ndS(Ns'name' must be a strings#'sources' must be a list of stringssUnknown Extension options: s, s
( ttypet
StringTypetAssertionErrortListTypetmaptlentnametsourcestinclude_dirst
define_macrostundef_macrostlibrary_dirst	librariestruntime_library_dirst
extra_objectstextra_compile_argstextra_link_argstexport_symbolst	swig_optstdependstlanguagetkeystsorttreprtstringtjointwarningstNonetwarntsyststderrtwrite(tselfRR	R
RRR
RRRRRRRRRtkwtLtmsg((sF/usr/jas/src/cmd/cpython/dist/sys/lib/python2.7/distutils/extension.pyt__init__Zs6%				
N(t__name__t
__module__t__doc__RR&(((sF/usr/jas/src/cmd/cpython/dist/sys/lib/python2.7/distutils/extension.pyRs<cCs�ddlm}m}m}ddlm}ddlm}||�}||ddddddd	dd
d�}z`g}xS|j�}	|	dkr�Pn|j
|	�r�~|	d|	dko�dknr�jd
|	�q~q�||	|�}	||	�}
|
d}t|g�}d}
x�|
dD]�}|
dk	rZ|
j
|�d}
q/ntjj|�d}|dd!}|d}|d(kr�|jj
|�q/|dkr�|jj
|�q/|dkr0tj|d�}|dkr|jj
|df�q�|jj
|d|!||df�q/|dkrO|jj
|�q/|dkrn|jj
|�q/|dkr�|jj
|�q/|dkr�|jj
|�q/|dkr�|jj
|�q/|dkr�j}
q/|dkr�j}
q/|d kr|j}
q/|d!krD|jj
|�|s�|j}
q�q/|d kr\|j}
q/|d!kr�|jj
|�|s�|j}
q�q/|d)kr�|jj
|�q/|jd'|�q/W|j
|�q~Wd|j�X|S(*Ni�(tparse_makefiletexpand_makefile_varst_variable_rx(tTextFile(tsplit_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
RtfindRRRRR
RRRtclose(tfilenameR*R+R,R-R.tvarstfilet
extensionstlinetwordstmoduletexttappend_next_wordtwordtsuffixtswitchtvaluetequals((sF/usr/jas/src/cmd/cpython/dist/sys/lib/python2.7/distutils/extension.pytread_setup_file�s�	$		


((R)t__revision__R;RRttypesRtImportErrorRRRN(((sF/usr/jas/src/cmd/cpython/dist/sys/lib/python2.7/distutils/extension.pyt<module>s$


q

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.