B
    0*\*                 @   s*   d dl Z d dlZG dd dZdd ZdS )    Nc               @   s   e Zd ZdddZdd ZdS )	ExtensionNc             K   s  t |tstdt |tr.tdd |D s6td|| _|| _|pHg | _|pRg | _|p\g | _	|pfg | _
|ppg | _|pzg | _|	pg | _|
pg | _|pg | _|pg | _|pg | _|pg | _|| _|| _t|dkrdd |D }dt|}d	| }t| d S )
Nz'name' must be a stringc             s   s   | ]}t |tV  qd S )N)
isinstancestr).0v r   >C:\ALexclude\prg\programme\Python37\Lib\distutils\extension.py	<genexpr>j   s    z%Extension.__init__.<locals>.<genexpr>z#'sources' must be a list of stringsr   c             S   s   g | ]}t |qS r   )repr)r   optionr   r   r   
<listcomp>   s    z&Extension.__init__.<locals>.<listcomp>z, zUnknown 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   kwoptionsmsgr   r   r   __init__V   s4    













zExtension.__init__c             C   s   d| j j| j j| jt| f S )Nz<%s.%s(%r) at %#x>)	__class__
__module____qualname__r   id)r%   r   r   r   __repr__   s
    zExtension.__repr__)NNNNNNNNNNNNNN)__name__r+   r,   r)   r.   r   r   r   r   r      s   D             
!r   c             C   s  ddl m}m}m} ddlm} ddlm} || }|| dddddd}zhg }x\| }	|	d krfP |	|	rrqT|	d |	d   krdkrn n|
d	|	  qT||	|}	||	}
|
d }t|g }d }x|
dd  D ]}|d k	r|| d }qtj|d }|dd
 }|d
d  }|dkr8|j| q|dkrP|j| q|dkr|d}|dkr|j|d f n$|j|d| ||d
 d  f q|dkr|j| q|dkr|j| q|dkr|j| q|dkr|j| q|dkr|j| q|dkr0|j}q|dkrB|j}q|dkrT|j}q|dkrx|j| |s|j}q|dkr|j| q|
d|  qW || qTW W d |  X |S )Nr   )parse_makefileexpand_makefile_vars_variable_rx)TextFile)split_quoted   )Zstrip_commentsZskip_blanksZ
join_linesZ	lstrip_wsZ	rstrip_ws*z'%s' lines not handled yet   )z.cz.ccz.cppz.cxxz.c++z.mz.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz
-Xcompilerz-u)z.az.soz.slz.oz.dylibzunrecognized argument '%s')Zdistutils.sysconfigr0   r1   r2   Zdistutils.text_filer3   Zdistutils.utilr4   readlinematchr$   r   appendospathsplitextr   r   findr   r   r   r   r   r   r   r   close)filenamer0   r1   r2   r3   r4   varsfile
extensionslineZwordsmoduleZextZappend_next_wordZwordsuffixZswitchvalueZequalsr   r   r   read_setup_file   s    

 


 















rJ   )r=   r#   r   rJ   r   r   r   r   <module>   s   z