U q`@sddlZddlZddlmZdddddgZdd d Zdd d ZdddZzddlm Z Wne k rtddZ YnXddZ ze e fZddlZWn ek re ZddlZYnXddZddZddZdS)N)VerificationErrorsources include_dirs library_dirs extra_objectsdependscKsHtddlm}|g}|D]}|tj|q|f||d|S)Nr) Extension)namer)_hack_at_distutilsdistutils.corer appendospathnormpath)Z srcfilenamemodnamerkwdsr Z allsourcessrcr r 7/tmp/pip-target-nv4zd3e_/lib/python/cffi/ffiplatform.py get_extensions  rc Csbttj}zt||||}tj|}W5|D]"\}}tj||kr8|tj|<q8X|S)z-Compile a C extension module using distutils.) r renvironcopyitemsget_buildrabspath)tmpdirextcompiler_verbosedebugZ saved_environkeyvalueZoutputfilenamer r rcompiles r#c Csddlm}ddl}ddl}|d|gi}||d}|dkrLtjj}d|f|d<d|d<d|f|d <d|f|d <zR|j dpd}z.|j || d| d} | \} W5|j |XWnD|jj|jjfk r} ztd | jj| fW5d} ~ XYnX| S) Nr) Distribution ext_modules build_ext ffiplatformr )r'Tforce build_lib build_tempz%s: %s)r r$distutils.errorsZ distutils.logparse_config_filesget_option_dictsysflagsr log set_threshold set_verbosity run_commandget_command_obj get_outputserrors CompileError LinkErrorr __class____name__) rrrr r$ distutilsdistoptionsZ old_levelcmd_objZsonameer r rr s0        &r)samefilecCstj|tj|kSN)rrr)f1f2r r rr@Asr@cCstj|s|S|}g}|}tj|\}}||ks8|s<|S||z&t|tjrj|tjj|WSWqt k rYqXqdSrA) rrisabssplitrr@curdirreversejoinOSError)rdirnamesZprevdirr r r rmaybe_relative_pathDs    rLcCst|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)xfrSr!r"r r rrT_s"     rTcCst}t|||SrA) cStringIOStringIOrTgetvalue)rYrZr r rflattenrs r^cCs0tjdkr,z ddl}Wntk r*YnXdS)Nwin32r)r.platform setuptools ImportError)rar r rr ws   r )r )rN)rN)r.rerrorrZLIST_OF_FILE_NAMESrr#ros.pathr@rbrLintlongrWr[ NameErroriorTr^r r r r rs,