Your IP : 3.149.24.70


Current Path : /opt/alt/python35/lib64/python3.5/distutils/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/distutils/__pycache__/extension.cpython-35.pyc



��Yf)�@sMdZddlZddlZddlZGdd�d�Zdd�ZdS)zmdistutils.extension

Provides the Extension class, used to describe C/C++ extension
modules in setup scripts.�Nc@sXeZdZdZdddddddddddddddd�Zdd�ZdS)�	Extensiona�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.
    NcKs|t|t�std��t|t�o@tdd�|D��sOtd��||_||_|pjg|_|pyg|_|p�g|_	|p�g|_
|p�g|_|p�g|_|	p�g|_
|
p�g|_|p�g|_|p�g|_|
pg|_|pg|_||_||_t|�dkrxdd�|D�}djt|��}d	|}tj|�dS)
Nz'name' must be a stringcss|]}t|t�VqdS)N)�
isinstance�str)�.0�v�r�8/opt/alt/python35/lib64/python3.5/distutils/extension.py�	<genexpr>ksz%Extension.__init__.<locals>.<genexpr>z#'sources' must be a list of stringsrcSsg|]}t|��qSr)�repr)rZoptionrrr�
<listcomp>�s	z&Extension.__init__.<locals>.<listcomp>z, zUnknown Extension options: %s)rr�AssertionError�list�all�name�sources�include_dirs�
define_macros�undef_macros�library_dirs�	libraries�runtime_library_dirs�
extra_objects�extra_compile_args�extra_link_args�export_symbols�	swig_opts�depends�language�optional�len�join�sorted�warnings�warn)�selfrrrrrrrrrrrrrrrr�kwZoptions�msgrrr�__init__Ws4				
zExtension.__init__cCs)d|jj|jj|jt|�fS)Nz<%s.%s(%r) at %#x>)�	__class__�
__module__�__qualname__r�id)r$rrr�__repr__�s
		zExtension.__repr__)�__name__r)r*�__doc__r'r,rrrrrs ?!rcCs�ddlm}m}m}ddlm}ddlm}||�}||ddddddd	dd
d�}zg}x|j�}	|	dkr�P|j	|	�r�q~|	d|	d(ko�dknr�|j
d
|	�q~||	|�}	||	�}
|
d}t|g�}d}
x`|
dd�D]N}|
dk	rT|
j|�d}
q,t
jj|�d}|dd�}|dd�}|d)kr�|jj|�q,|dkr�|jj|�q,|dkr9|jd�}|d*kr|jj|df�qz|jj|d|�||dd�f�q,|dkrX|jj|�q,|dkrw|jj|�q,|dkr�|jj|�q,|dkr�|jj|�q,|dkr�|jj|�q,|dkr�|j}
q,|dkr|j}
q,|d kr|j}
q,|d!krJ|jj|�|sz|j}
q,|d+kri|jj|�q,|j
d'|�q,W|j|�q~WWd|j�X|S),z3Reads a Setup file and returns Extension instances.r)�parse_makefile�expand_makefile_vars�_variable_rx)�TextFile)�split_quotedZstrip_comments�Zskip_blanksZ
join_linesZ	lstrip_wsZ	rstrip_wsN�*z'%s' lines not handled yet��.c�.cc�.cpp�.cxx�.c++�.m�.mmz-Iz-D�=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz
-Xcompilerz-u�.a�.so�.sl�.o�.dylibzunrecognized argument '%s'���)r7r8r9r:r;r<r=rD)r?r@rArBrC)Zdistutils.sysconfigr/r0r1Zdistutils.text_filer2Zdistutils.utilr3�readline�matchr#r�append�os�path�splitextrr�findrrrrrrrr�close)�filenamer/r0r1r2r3�vars�file�
extensions�lineZwords�moduleZextZappend_next_wordZword�suffixZswitch�valueZequalsrrr�read_setup_file�s�	$

rU)r.rH�sysr"rrUrrrr�<module>s
z

?>