U
e5d) ã @ s* d dl Z d dlZG dd„ dƒZdd„ ZdS )é Nc @ s e Zd Zddd„Zdd„ ZdS )Ú ExtensionNc K s t |tƒstdƒ‚t |tƒr.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 ƒ}d t|ƒ¡}d | }t |¡ d S )
Nz'name' must be a stringc s s | ]}t |tƒV qd S )N)Ú
isinstanceÚstr)Ú.0Úv© r ú+/usr/lib64/python3.8/distutils/extension.pyÚ j s z%Extension.__init__..z#'sources' must be a list of stringsr c S s g | ]}t |ƒ‘qS r )Úrepr)r Zoptionr r r Ú
€ s z&Extension.__init__..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 s6
ÿ
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* r' r, r r r r r s D ò
/r c C s¸ ddl m}m}m} ddlm} ddlm} || ƒ}|| dddddd�}�z^g }| ¡ } | d krd�q¦|
| ¡rpqP| d | d krŒdkr n n| d | ¡ qP|| |ƒ} || ƒ}
|
d }t|g ƒ}d }
|
dd … D �]Â}|
d k rò|
|¡ d }
qÔtj |¡d }|dd
… }|d
d … }|dk�r2|j
|¡ qÔ|dk�rJ|j
|¡ qÔ|d
k�r | d¡}|dk�rz|j
|d f¡ n$|j
|d|… ||d
d … f¡ qÔ|dk�r¸|j
|¡ qÔ|dk�rÐ|j
|¡ qÔ|dk�rè|j
|¡ qÔ|dk�r |j
|¡ qÔ|dk�r|j
|¡ qÔ|dk�r*|j}
qÔ|dk�r<|j}
qÔ|dk�rN|j}
qÔ|dk�rr|j
|¡ |�s˜|j}
qÔ|dk�rŠ|j
|¡ qÔ| d| ¡ qÔ|
|¡ qPW 5 | ¡ X |S )Nr )Úparse_makefileÚexpand_makefile_varsÚ_variable_rx)ÚTextFile)Úsplit_quotedé )Zstrip_commentsZskip_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.dylibzunrecognized argument '%s')Zdistutils.sysconfigr. r/ r0 Zdistutils.text_filer1 Zdistutils.utilr2 ÚcloseÚreadlineÚmatchr# r ÚappendÚosÚpathÚsplitextr r Úfindr r r r r r r r )Úfilenamer. r/ r0 r1 r2 ÚvarsÚfileÚ
extensionsÚlineZwordsÚmoduleZextZappend_next_wordZwordÚsuffixZswitchÚvalueZequalsr r r Úread_setup_file� sŽ þ
ÿ
rH )r<