a (`@sddlZddlZddlmZgdZdddZddd Zdd d Zzdd lm Z Wne yld dZ Yn0ddZ ze e fZddlZWneye ZddlZYn0ddZddZddZdS)N)VerificationError)sourcesZ include_dirsZ library_dirsZ extra_objectsZdependscKsHtddlm}|g}|D]}|tj|q|f||d|S)Nr) Extension)namer)_hack_at_distutilsdistutils.corerappendospathnormpath)Z srcfilenamemodnamerkwdsrZ allsourcessrcrr6/usr/lib64/python3.9/site-packages/cffi/ffiplatform.py get_extensions  rc Csttj}zJt||||}tj|}W|D]"\}}tj||kr6|tj|<q6n.|D]"\}}tj||krd|tj|<qd0|S)z-Compile a C extension module using distutils.) rr environcopy_buildr abspathitemsget)tmpdirextcompiler_verbosedebugZ saved_environZoutputfilenamekeyvaluerrrcompiles rc Cs"ddlm}ddl}ddl}|d|gi}||d}|durLtjj}d|f|d<d|d<d|f|d <d|f|d <z^|j dpd}z:|j || d| d} | \} W|j |n|j |0WnF|jj|jjfy} z td | jj| fWYd} ~ n d} ~ 00| 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 distutilsZdistoptionsZ old_levelZcmd_objZsonameerrrr s0          *r)samefilecCstj|tj|kSN)r r r)f1f2rrrr+Asr+cCstj|s|S|}g}|}tj|\}}||ks8|s<|S||z&t|tjrj|tjj|WSWqt y~Yq0qdSr,) r r isabssplitr r+curdirreversejoinOSError)r dirnamesZprevdirrrrrmaybe_relative_pathDs     r7cCst|tr"|dt||fnt|trnt|}|dt||D]}t||t|||qNn`t|tt fr|dt||D]}t||qn*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|||Sr,) cStringIOStringIOr?getvalue)rDrErrrflattenrs rIcCs.tjdkr*z ddl}Wnty(Yn0dS)Nwin32r)r#platform setuptools ImportError)rLrrrrws    r)r)rN)rN)r#r errorrZLIST_OF_FILE_NAMESrrrZos.pathr+rMr7intZlongrBrF NameErrorior?rIrrrrrs&