U vù¾fã@sÈddlZddlZddlmZdddddgZdd d „Zdd d „Zddd„Zzddlm Z Wne k rtdd„Z YnXdd„Z ze e fZddlZWn ek r²e ZddlZYnXdd„Zdd„ZdS)éNé)ÚVerificationErrorÚsourcesÚ include_dirsÚ library_dirsÚ extra_objectsÚdepends©cKsBddlm}|g}|D]}| tj |¡¡q|f||dœ|—ŽS)Nr)Ú Extension)Únamer)Úcffi._shimmed_dist_utilsr ÚappendÚosÚpathÚnormpath)Z srcfilenameÚmodnamerÚkwdsr Z allsourcesÚsrcr r úC/opt/alt/python38/lib64/python3.8/site-packages/cffi/ffiplatform.pyÚ get_extensions  rc Cs\tj ¡}zt||||ƒ}tj |¡}W5| ¡D]"\}}tj |¡|kr2|tj|<q2X|S)z-Compile a C extension module using distutils.)rÚenvironÚcopyÚitemsÚgetÚ_buildrÚabspath)ÚtmpdirÚextÚcompiler_verboseÚdebugZ saved_environÚkeyÚvalueZoutputfilenamer r rÚcompiles r"c Csþddlm}m}m}m}m}|d|giƒ} |  ¡|  d¡} |dkrLtj j }d|f| d<d| d<d|f| d <d|f| d <zF|dƒp„d} z*||ƒ|   d¡|   d¡} |   ¡\} W5|| ƒXWn:||fk rø}ztd |jj|fƒ‚W5d}~XYnX| S) Nr)Ú DistributionÚ CompileErrorÚ LinkErrorÚ set_thresholdÚ set_verbosityÚ ext_modulesÚ build_extÚ ffiplatformr)r*TÚforceÚ build_libÚ build_tempz%s: %s)r r#r$r%r&r'Úparse_config_filesÚget_option_dictÚsysÚflagsrÚ run_commandÚget_command_objÚ get_outputsrÚ __class__Ú__name__)rrrrr#r$r%r&r'ÚdistÚoptionsZ old_levelÚcmd_objZsonameÚer r rrs*       &r)ÚsamefilecCstj |¡tj |¡kS©N)rrr)Úf1Úf2r r rr;=sr;cCsˆtj |¡s|S|}g}|}tj |¡\}}||ks8|s<|S| |¡z&t|tjƒrj| ¡tjj|ŽWSWqt k r€YqXqdSr<) rrÚisabsÚsplitr r;ÚcurdirÚreverseÚjoinÚOSError)rÚdirÚnamesZprevdirr r r rÚmaybe_relative_path@s    rGcCsÒt|tƒr"| dt|ƒ|f¡n¬t|tƒrnt| ¡ƒ}| dt|ƒ¡|D]}t||ƒt|||ƒqNn`t|tt fƒr¤| dt|ƒ¡|D]}t||ƒq’n*t|t ƒrÀ| d|f¡nt d|fƒ‚dS)Nz%ds%sz%ddz%dlz%diz7the keywords to verify() contains unsupported object %r) Ú isinstanceÚstrÚwriteÚlenÚdictÚsortedÚkeysÚ_flattenÚlistÚtupleÚ int_or_longÚ TypeError)ÚxÚfrNr r!r r rrO[s"     ÿrOcCst ¡}t||ƒ| ¡Sr<)Ú cStringIOÚStringIOrOÚgetvalue)rTrUr r rÚflattenns rY)r )rN)rN)r0rÚerrorrZLIST_OF_FILE_NAMESrr"rÚos.pathr;Ú ImportErrorrGÚintÚlongrRrVÚ NameErrorÚiorOrYr r r rÚs* ÿ