Edit File: extension.cpython-36.opt-1.pyc
3 � \)������������������@���s.���d�Z�ddlZddlZG�dd��d�Zdd��ZdS�)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.�����Nc���������������@���s"���e�Zd�ZdZddd�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. Nc�������������K���s��t�|t�std��t�|t�o,tdd��|D���s6td��||�_||�_|pHg�|�_|pRg�|�_|p\g�|�_ |pfg�|�_ |ppg�|�_|pzg�|�_| p�g�|�_ | p�g�|�_|p�g�|�_|p�g�|�_| p�g�|�_|p�g�|�_||�_||�_t|�dk�rdd��|D��}djt|��}d |�}tj|��d�S�) Nz'name' must be a stringc�������������s���s���|�]}t�|t�V��qd�S�)N)� isinstance�str)�.0�v��r����+/usr/lib64/python3.6/distutils/extension.py� <genexpr>j���s����z%Extension.__init__.<locals>.<genexpr>z#'sources' must be a list of stringsr���c�������������S���s���g�|�]}t�|��qS�r���)�repr)r���Zoptionr���r���r���� <listcomp>����s����z&Extension.__init__.<locals>.<listcomp>z, zUnknown Extension options: %s)r���r����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)�selfr���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r����kwZoptions�msgr���r���r����__init__V���s4���� zExtension.__init__c�������������C���s���d|�j�j|�j�j|�jt|��f�S�)Nz<%s.%s(%r) at %#x>)� __class__� __module__�__qualname__r����id)r$���r���r���r����__repr__����s ����zExtension.__repr__)NNNNNNNNNNNNNN)�__name__r)���r*����__doc__r'���r,���r���r���r���r���r������s ���?������������� !r���c�������������C���s���ddl�m}m}m}�ddlm}�ddlm}�||��}||�dddddd�}�zhg�}�x\|j��} | dkrfP�|j | �rrqT| d�| d$���ko�dkn��r�|j d | ���qT|| |�} || �} | d�}t|g��}d} �x�| dd��D��]�}| dk r�| j|��d} q�t jj|�d�}|dd ��}|d d��}|d%k�r8|jj|��q�|dk�rP|jj|��q�|dk�r�|jd�}|d&k�r�|jj|df��n$|jj|d|��||d �d��f��q�|dk�r�|jj|��q�|dk�r�|jj|��q�|dk�r�|jj|��q�|dk�r|jj|��q�|dk�r|jj|��q�|dk�r0|j} q�|dk�rB|j} q�|dk�rT|j} q�|dk�rx|jj|��|�s�|j} q�|d'k�r�|jj|��q�|j d#|���q�W�|j|��qTW�W�d|j���X�|S�)(z3Reads a Setup file and returns Extension instances.r���)�parse_makefile�expand_makefile_vars�_variable_rx)�TextFile)�split_quoted����)Zstrip_commentsZskip_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'���)r7���r8���r9���r:���r;���r<���r=���rD���)r?���r@���rA���rB���rC���)Zdistutils.sysconfigr/���r0���r1���Zdistutils.text_filer2���Zdistutils.utilr3����readline�matchr#���r����append�os�path�splitextr���r����findr���r���r���r���r���r���r���r����close)�filenamer/���r0���r1���r2���r3����vars�file� extensions�lineZwords�moduleZextZappend_next_wordZword�suffixZswitch�valueZequalsr���r���r����read_setup_file����s����� � rU���)r.���rH���r"���r���rU���r���r���r���r����<module>���s���z