U e5d \ã @s‚ddlZddlZddlmZmZmZmZmZddlm Z m Z m Z ddl m Z dZz,ddlZdZeZejZejZejZejZWnhek räz4ddlZddlZdZeZejZejZejZejZWnek rÞe  d¡YnXYnXerþejejejej fZ!dd „Z"d d „Z#d d „Z$Gdd„dƒZ%dd„Z&dd„Z'dd„Z(Gdd„de ƒZ)e&ƒdk�r~e  *d¡e)Z+ddl,m)Z)ddl,m%Z%dS)éN)ÚDistutilsExecErrorÚDistutilsPlatformErrorÚ CompileErrorÚLibErrorÚ LinkError)Ú CCompilerÚgen_preprocess_optionsÚgen_lib_options)ÚlogFTz�Warning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsnzt||ƒ}Wntk r$YdSXg}d}zt||ƒ}Wntk rTYqjYnX| |¡|d7}q.|S©Nré)Ú RegOpenKeyExÚRegErrorÚ RegEnumKeyÚappend)ÚbaseÚkeyÚhandleÚLÚiÚk©rú./usr/lib64/python3.8/distutils/msvccompiler.pyÚ read_keys7s   rcCs‚zt||ƒ}Wntk r$YdSXi}d}zt||ƒ\}}}Wntk rZYq~YnX| ¡}t|ƒ|t|ƒ<|d7}q.|Sr )r rÚ RegEnumValueÚlowerÚ convert_mbcs)rrrÚdrÚnameÚvalueÚtyperrrÚ read_valuesHs  r!cCs:t|ddƒ}|dk r6z |dƒ}Wntk r4YnX|S)NÚdecodeÚmbcs)ÚgetattrÚ UnicodeError)ÚsZdecrrrr]s  rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú MacroExpandercCsi|_| |¡dS©N)ÚmacrosÚ load_macros)ÚselfÚversionrrrÚ__init__gszMacroExpander.__init__cCs2tD](}t||ƒ}|r|||jd|<q.qdS)Nz$(%s))ÚHKEYSr!r))r+ZmacroÚpathrrrrrrÚ set_macroks  zMacroExpander.set_macroc Csød|}| d|dd¡| d|dd¡d}| d|d ¡z*|d krX| d |d ¡n| d |d ¡Wn*tk r’}z tdƒ‚W5d}~XYnXd}tD]V}zt||ƒ}Wntk rÆYqœYnXt|dƒ}t|d||fƒ} | d|jd<qœdS)Nz%Software\Microsoft\VisualStudio\%0.1fZ VCInstallDirz \Setup\VCZ productdirZ VSInstallDirz \Setup\VSz Software\Microsoft\.NETFrameworkZ FrameworkDirZ installrootg@ZFrameworkSDKDirzsdkinstallrootv1.1ZsdkinstallrootaPython was built with Visual Studio 2003; extensions must be built with a compiler than can generate compatible binaries. Visual Studio 2003 was not found on this system. If you have Cygwin installed, you can try compiling with MingW32, by passing "-c mingw32" to setup.py.z.Software\Microsoft\NET Framework Setup\Productrz%s\%sr,z$(FrameworkVersion)) r0ÚKeyErrorrr.r rrr!r)) r+r,ZvsbaseZnetÚexcÚprÚhrrrrrr*rs,ÿ  zMacroExpander.load_macroscCs$|j ¡D]\}}| ||¡}q |Sr()r)ÚitemsÚreplace)r+r&rÚvrrrÚsubŽszMacroExpander.subN)Ú__name__Ú __module__Ú __qualname__r-r0r*r8rrrrr'fsr'cCsšd}tj |¡}|dkrdS|t|ƒ}tj|d… dd¡\}}t|dd…ƒd}|dkrf|d7}t|dd …ƒd }|dkr†d }|dkr–||SdS) NzMSC v.éÿÿÿÿéú r éþÿÿÿé éég$@r)Úsysr,ÚfindÚlenÚsplitÚint)Úprefixrr&ÚrestZ majorVersionZ minorVersionrrrÚget_build_version“s  rJcCs@d}tj |¡}|dkrdStj d|¡}tj|t|ƒ|…S)Nz bit (r<ÚIntelú))rCr,rDrE)rHrÚjrrrÚget_build_architecture¬s  rNcCs0g}|D]"}tj |¡}||kr| |¡q|Sr()Úosr/Únormpathr)ÚpathsZ reduced_pathsr3ZnprrrÚnormalize_and_reduce_paths¹s   rRc @sÒeZdZdZiZdgZdddgZdgZdgZeeeeZ dZ d Z d Z d Z d ZZd Zd,dd„Zdd„Zd-dd„Zd.dd„Zd/dd„Zd0dd„Zdd„Zdd „Zd!d"„Zd1d#d$„Zd%d&„Zd2d(d)„Zd*d+„ZdS)3Ú MSVCCompilerZmsvcz.cz.ccz.cppz.cxxú.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCsvt ||||¡tƒ|_tƒ|_|jdkr\|jdkrHd|_t|jƒ|_nd|_d|j|_ nd|jd|_ d|_ dS) NrKézSoftware\Microsoft\VisualStudiozSoftware\Microsoft\DevstudiozVisual Studio version %szMicrosoft SDK compiler %sr=F) rr-rJÚ_MSVCCompiler__versionrNÚ_MSVCCompiler__archÚ_MSVCCompiler__rootr'Ú_MSVCCompiler__macrosÚ_MSVCCompiler__productÚ initialized)r+ÚverboseZdry_runZforcerrrr-æs  zMSVCCompiler.__init__cCsÀg|_dtjkrDdtjkrD| d¡rDd|_d|_d|_d|_d|_nx|  d¡|_t |jƒd krlt d |j ƒ‚| d¡|_| d¡|_| d¡|_| d¡|_| d¡|_|  d ¡|  d ¡z&tjd d ¡D]}|j |¡qÎWntk röYnXt|jƒ|_d  |j¡tjd<d|_|jdk�rPddddddg|_dddddddg|_n&ddddddg|_dddddddg|_dddg|_|jdk�ržddddg|_ndddddg|_dg|_d |_dS)!NZDISTUTILS_USE_SDKZMSSdkzcl.exezlink.exezlib.exezrc.exezmc.exer/rzxPython was built with %s, and extensions need to be built with the same version of the compiler, but it isn't installed.ÚlibZincludeú;rKz/nologoz/Oxz/MDz/W3z/GXz/DNDEBUGz/Odz/MDdz/Z7z/D_DEBUGz/GS-z/DLLz/INCREMENTAL:NOrUz/INCREMENTAL:noz/DEBUGz /pdb:NoneT)Ú_MSVCCompiler__pathsrOÚenvironÚfind_exeÚccÚlinkerr]ÚrcÚmcÚget_msvc_pathsrErrZÚset_path_env_varrFrr1rRÚjoinZpreprocess_optionsrWÚcompile_optionsÚcompile_options_debugÚldflags_sharedrVÚldflags_shared_debugZldflags_staticr[)r+r3rrrÚ initializeøsr ý          ÿ ÿ ÿ ÿ  ÿÿzMSVCCompiler.initializeÚcCsÞ|dkr d}g}|D]Ä}tj |¡\}}tj |¡d}|tj |¡d…}||jkrbtd|ƒ‚|rrtj |¡}||jkr˜|  tj  |||j ¡¡q||j kr¾|  tj  |||j ¡¡q|  tj  |||j ¡¡q|S)Nrnr zDon't know how to compile %s)rOr/ÚsplitextÚ splitdriveÚisabsÚsrc_extensionsrÚbasenameÚ_rc_extensionsrrhÚ res_extensionÚ_mc_extensionsÚ obj_extension)r+Zsource_filenamesZ strip_dirÚ output_dirZ obj_namesZsrc_namerÚextrrrÚobject_filenames8s.     ÿ  ÿ ÿzMSVCCompiler.object_filenamesNc  Csp|js| ¡| ||||||¡} | \}} }} } |p6g} |  d¡|rT|  |j¡n |  |j¡| D�]}z| |\}}Wntk r’YqdYnX|r¤tj   |¡}||j krºd|}�nT||j krÐd|}�n>||j k�r<|}d|}z"| |jg| |g|g¡Wqdtk �r6}z t|ƒ‚W5d}~XYqdXqdnÒ||jk�rþtj  |¡}tj  |¡}zl| |jgd|d|g|g¡tj  tj  |¡¡\}}tj  ||d¡}| |jgd|g|g¡Wqdtk �rø}z t|ƒ‚W5d}~XYqdXqdntd||fƒ‚d |}z&| |jg| | ||g|¡Wqdtk �rh}z t|ƒ‚W5d}~XYqdXqd| S) Nz/cz/Tcz/Tpz/foz-hz-rrTz"Don't know how to compile %s to %sz/Fo)r[rmZ_setup_compilerÚextendrjrir1rOr/ÚabspathÚ _c_extensionsÚ_cpp_extensionsrtÚspawnrdrrrvÚdirnamererorsrhrb)r+Zsourcesrxr)Z include_dirsÚdebugÚ extra_preargsÚextra_postargsZdependsZ compile_infoÚobjectsZpp_optsZbuildZ compile_optsÚobjÚsrcryZ input_optZ output_optÚmsgZh_dirZrc_dirrÚ_Zrc_filerrrÚcompileWsˆ ÿ          ÿÿ     ÿÿ ÿÿ ÿÿþ zMSVCCompiler.compilec Csž|js| ¡| ||¡\}}|j||d�}| ||¡rŽ|d|g}|rJz| |jg|¡Wqštk rŠ}z t|ƒ‚W5d}~XYqšXn t   d|¡dS)N)rxú/OUT:úskipping %s (up-to-date)) r[rmÚ_fix_object_argsÚlibrary_filenameÚ _need_linkrr]rrr r�) r+r„Zoutput_libnamerxr�Ú target_langÚoutput_filenameZlib_argsr‡rrrÚcreate_static_lib¬sÿ zMSVCCompiler.create_static_libc CsÒ|js| ¡| ||¡\}}| |||¡}|\}}}|rL| dt|ƒ¡t||||ƒ}|dk rptj  ||¡}|  ||¡�rÂ|t j kr¬| rœ|j dd…}q¾|jdd…}n| r¸|j }n|j}g}|pÈgD]}| d|¡qÊ||||d|g}|dk �rHtj tj |¡¡\}}tj  tj |d¡| |¡¡}| d|¡| �rZ| |dd…<| �rj| | ¡| tj |¡¡z| |jg|¡Wn,tk �r¾}z t|ƒ‚W5d}~XYnXn t d|¡dS)Nz5I don't know what to do with 'runtime_library_dirs': r z/EXPORT:rŠrz/IMPLIB:r‹)r[rmrŒZ _fix_lib_argsÚwarnÚstrr rOr/rhrŽrZ EXECUTABLErlrkrrorsr€r�r{Zmkpathrrcrrr r�)r+Z target_descr„r�rxZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsr�r‚rƒZ build_tempr�Z fixed_argsZlib_optsZldflagsZ export_optsZsymZld_argsZdll_nameZdll_extZ implib_filer‡rrrÚlinkÅsjÿ ÿþ   ÿÿ  ÿþ  zMSVCCompiler.linkcCsd|S)Nz /LIBPATH:r©r+ÚdirrrrÚlibrary_dir_optionszMSVCCompiler.library_dir_optioncCs tdƒ‚dS)Nz|jdkrt|j ||¡ d¡S|| d¡Sq>|jdkr¾tD]&}t|d|jƒdk r–| d¡q¾q–gS) Nz dirsrUz6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesz?%s\6.0\Build System\Components\Platforms\Win32 (%s)\Directoriesr^r=z%s\6.0z´It seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.) Ú _can_read_regrVrXr.r!rYr8rFr’)r+r/ÚplatformrrrrrrrfKs,  ÿÿ    zMSVCCompiler.get_msvc_pathscCs6|dkr| d¡}n | |¡}|r2d |¡tj|<dS)Nr]Zlibraryr^)rfrhrOr`)r+rr3rrrrgos   zMSVCCompiler.set_path_env_var)rrr)rrn)NNNrNNN)NrN) NNNNNrNNNN)r)r )r9r:r;Z compiler_typeZ executablesr}r~rtrvrrrurwZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr-rmrzr‰r‘r”r—r˜r™rœrarfrgrrrrrSÈsh ÿÿ Bý þ Xû ó S  $rSg @z3Importing new compiler from distutils.msvc9compiler)rS)r')-rCrOZdistutils.errorsrrrrrZdistutils.ccompilerrrr Z distutilsr r¡ÚwinregZhkey_modZ OpenKeyExr ZEnumKeyrZ EnumValuerÚerrorrÚ ImportErrorZwin32apiZwin32conÚinfoZ HKEY_USERSÚHKEY_CURRENT_USERÚHKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTr.rr!rr'rJrNrRrSr�ZOldMSVCCompilerZdistutils.msvc9compilerrrrrÚ s^     ý - 9