3 \)�@s*ddlZddlZGdd�d�Zdd�ZdS)�Nc@seZdZddd�Zdd�ZdS)� ExtensionNcKst|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|�dS) Nz'name' must be a stringcss|]}t|t�VqdS)N)� isinstance�str)�.0�v�r�+/usr/lib64/python3.6/distutils/extension.py� jsz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|] }t|��qSr)�repr)rZoptionrrr� �sz&Extension.__init__..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__Vs4              zExtension.__init__cCsd|jj|jj|jt|�fS)Nz<%s.%s(%r) at %#x>)� __class__� __module__� __qualname__r�id)r$rrr�__repr__�s zExtension.__repr__)NNNNNNNNNNNNNN)�__name__r)r*r'r,rrrrrsD !rcCs�ddlm}m}m}ddlm}ddlm}||�}||dddddd�}�zhg}�x\|j�} | dkrfP|j | �rrqT| d| d#ko�dknr�|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 | �qTWWd|j�X|S)'Nr)�parse_makefile�expand_makefile_vars� _variable_rx)�TextFile)� split_quoted�)Zstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_ws�*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'�����)r6r7r8r9r:r;r<rC)r>r?r@rArB)Zdistutils.sysconfigr.r/r0Zdistutils.text_filer1Zdistutils.utilr2�readline�matchr#r�append�os�path�splitextrr�findrrrrrrrr�close)�filenamer.r/r0r1r2�vars�file� extensions�lineZwords�moduleZextZappend_next_wordZword�suffixZswitch�valueZequalsrrr�read_setup_file�s�                          rT)rGr"rrTrrrr�s z