B ل=^@sddlZddlZddlmZdddddgZdd d Zdd d ZdddZyddlm Z Wne k rtddZ YnXddZ ye e fZddlZWn ek re ZddlZYnXddZddZddZdS)N)VerificationErrorsourcesZ include_dirsZ library_dirsZ extra_objectsZdependscKsLtddlm}|g}x|D]}|tj|qW|f||d|S)Nr) Extension)namer)_hack_at_distutilsdistutils.corerappendospathnormpath)Z srcfilenamemodnamerkwdsrZ allsourcessrcrrC/opt/alt/python37/lib64/python3.7/site-packages/cffi/ffiplatform.py get_extensions   rc Csfttj}zt||||}tj|}Wdx.|D]"\}}tj||kr:|tj|<q:WX|S)z-Compile a C extension module using distutils.N) rr environcopy_buildr abspathitemsget)tmpdirextcompiler_verbosedebugZ saved_environZoutputfilenamekeyvaluerrrcompiles rc Csddlm}ddl}ddl}|d|gi}||d}|dkrLtjj}d|f|d<d|d<d|f|d <d|f|d <yR|j dpd}z.|j || d| d} | \} Wd|j |XWnD|jj|jjfk r} ztd | jj| fWdd} ~ XYnX| S) Nr) DistributionZ ext_modulesZ build_ext ffiplatformr)r!TforceZ build_libZ build_tempz%s: %s)r r Zdistutils.errorsZ distutils.logZparse_config_filesZget_option_dictsysflagsrlogZ set_thresholdZ set_verbosityZ run_commandZget_command_objZ get_outputserrorsZ CompileErrorZ LinkErrorr __class____name__) rrrrr Z distutilsZdistZoptionsZ old_levelZcmd_objZsonameerrrr s.        &r)samefilecCstj|tj|kS)N)r r r)f1f2rrrr*Asr*cCstj|s|S|}g}xl|}tj|\}}||ks:|s>|S||y$t|tjrj|tjj|SWqt k rYqXqWdS)N) r r isabssplitr r*curdirreversejoinOSError)r dirnamesZprevdirrrrrmaybe_relative_pathDs     r5cCst|tr"|dt||fnt|trrt|}|dt|x|D]}t||t|||qPWndt|tt fr|dt|xB|D]}t||qWn*t|t r|d|fnt d|fdS)Nz%ds%sz%ddz%dlz%diz7the keywords to verify() contains unsupported object %r) isinstancestrwritelendictsortedkeys_flattenlisttuple int_or_long TypeError)xfr<rrrrrr=_s        r=cCst}t|||S)N) cStringIOStringIOr=getvalue)rBrCrrrflattenrs rGcCs0tjdkr,y ddl}Wntk r*YnXdS)NZwin32r)r#platform setuptools ImportError)rIrrrrws   r)r)rN)rN)r#r errorrZLIST_OF_FILE_NAMESrrrZos.pathr*rJr5intZlongr@rD NameErrorior=rGrrrrrs(