fv ddlZddlZddlZddlZddlmZmZmZmZm Z ddl m Z m Z ddl mZddlmZddlZejZejZejZejZejejejejfZejdko ej dkZ!e!rdZ"d Z#d Z$nd Z"d Z#d Z$dddZ%GddZ&GddZ'dZ(dZ)dZ*dZ+ddZ,e(Z-e-dkrede-zGdde Z.dS)N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platformwin32lz1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86amd64r z win-amd64ceZdZ dZeeZdZeeZdZeeZdZeeZdS)RegctD](}|||}|r||vr ||cS)t|N)HKEYS read_valuesKeyError)clspathkeybaseds >/opt/alt/python311/lib64/python3.11/distutils/msvc9compiler.py get_valuez Reg.get_value?sN  Dd++A SAXXv smmc t||}n#t$rYdSwxYwg}d} t||}n#t$rYnwxYw|||dz }=|SNrT) RegOpenKeyExRegError RegEnumKeyappend)rrrhandleLiks r read_keysz Reg.read_keysGs+ !$,,FF   44     vq))     HHQKKK FA  s ""< A A c. t||}n#t$rYdSwxYwi}d} t||\}}}n#t$rYnIwxYw|}|||||<|dz }k|Sr )r"r# RegEnumValuelower convert_mbcs) rrrr&rr(namevaluetypes rrzReg.read_valuesYs  !$,,FF   44     $0$;$;!eTT    ::<> NN-t{M J J J NN?K9O P P P P PAA B B$T1--AAH A&&MM$AAAss(;<<56y\ 122 B Bs2BB)8D  DDcp|jD]\}}|||}|Sr)rBitemsreplace)rFr7r)vs rsubzMacroExpander.subs;K%%''  DAq !QAArN)r9r:r;rHrKrEr`r>rrr@r@ysV""" @@@BBB>rr@cx d}tj|}|dkrdS|t|z}tj|ddd\}}t |dddz }|dkr|dz }t |dd d z }|dkrd }|dkr||zSdS) NzMSC v. r! g$@r)sysrGfindlensplitint)prefixr(r7rest majorVersion minorVersions rget_build_versionrrs F   ABwwq CKKAk!""o##C++GAtq"v;;?Lr q1v;;%Lq ql** 4rc g}|D]:}tj|}||vr||;|Sr)osrnormpathr%)paths reduced_pathsrZnps rnormalize_and_reduce_pathsrysX M %% W  a  ] " "   $ $ $ rc |tj}g}|D]}||vr||tj|}|Sr)rlrtpathsepr%join)variableoldListnewListr( newVariables rremoveDuplicatesrsennRZ((GG  G   NN1   *//'**K rc t|z} td|zd}n&#t$rt jdd}YnwxYw|rt j|sd|z}t j |d}|rt j|rt j |t j t j d}t j |}t j|st jd|zdSnt jd|z|st jddSt j |d }t j|r|St jd dS) Nz %s\Setup\VCrNz%Unable to find productdir in registryzVS%0.f0COMNTOOLSVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batUnable to find vcvarsall.bat)rCrrrr debugrtrisdirenvirongetr|pardirabspathisfile)rGrDrNtoolskeytoolsdir vcvarsalls rfind_vcvarsallrs w F]]>F#:#/11  9:::   ERW]]:66 E%/:>>(D11  E h// Eh 29dKKJ44J7==,,  7*DEEEt  I88C D D D  '(((t Z99I w~~i  I,--- 4s, AAc t|}hd}i}|tdtjd||t jd|d|dtjtj} |\}}|dkr"t| d | d }| d D]}t |}d |vr!| }| d d \} } | } | |vr;| t jr | dd } t%| || < |j|jn7#|j|jwxYwt-|t-|kr;t/t1t3||S)N>librincludelibpathrz'Calling 'vcvarsall.bat %s' (version=%s)"z" z & set)stdoutstderrrr4 =r!rb)rrr r subprocessPopenPIPE communicatewaitr3rlrr.stripr-endswithrtr{rrcloserrk ValueErrorstrlistkeys) rGarchr interestingresultpopenrrlinerr0s rquery_vcvarsallrs+w''I777K F$%CDDDI7wGGG    444@$.O$.O 5 5 5E**,, ::<<1  (v)>)>?? ?v&&LL&& 6 6D##D))D$::<>"*--'!#2#JE.u55s  6       6{{c+&&&&T&++--0011222 Ms 1DG4G6rRz(VC %0.1f is not supported by this moduleceZdZ dZiZdgZgdZdgZdgZeezezezZ dZ dZ dZ d Z d xZZd Zdd ZddZ ddZ d dZ d!dZ d"dZdZdZdZdZdZdZd#dZdZdS)$ MSVCCompilermsvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exerctj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rrHVERSION_MSVCCompiler__version_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)rFverbosedry_runforces rrHzMSVCCompiler.__init__HsJD'7E::: 8    rNc|t}d}||vrtd|dtjvrHdtjvr:|dr%d|_d|_d|_d|_d |_ nj|tks|d krt|}n*ttd zt|z}tt|}|d  tj|_|d tjd <|dtjd<t!|jdkrtd|jz|d|_|d|_|d|_|d|_|d |_ tjd  dD]}|j|n#t&$rYnwxYwt)|j|_d|jtjd <d|_|jdkrgd|_gd|_ngd|_gd|_gd|_|jdkr gd|_dg|_d|_dS)Nrz--plat-name must be one of DISTUTILS_USE_SDKMSSdkzcl.exezlink.exezlib.exezrc.exezmc.exer _rrrrzxPython was built with %s, and extensions need to be built with the same version of the compiler, but it isn't installed.;r )/nologo/Ox/MD/W3/DNDEBUG)r/Od/MDdr/Z7/D_DEBUG)rrrr/GS-r)rrrrrrr)/DLLrz/INCREMENTAL:NO)rrz/INCREMENTAL:noz/DEBUGrT)r rrtrfind_execclinkerrrcmcPLAT_TO_VCVARSrrrlr{rrk_MSVCCompiler__productr%rryr|preprocess_optionsrcompile_optionscompile_options_debugldflags_sharedrldflags_shared_debugldflags_staticr)rFrok_plats plat_specvc_envrZs r initializezMSVCCompiler.initializeSs   $I' H $ $((*2(*566 6 "* , ,BJ1F1F4==YaKbKb1FDG$DK DHDGDGG LNN**i7.B.B*95 +<>>:S@*956 %Wi88F!&>// ;;DL &u BJu $*9$5BJy !4<  A%%,.J.())) mmH--DG-- 33DK}}Y//DHmmH--DGmmH--DG  Z'--c22 ' ' ##A&&&& '    D 1$,??  XXdl33 6"& ;%  $1$1$1D *=*=*=D & &$1$1$1D *=*=*=D &EDD >Q  )))D %!*ls*AH-- H:9H:c|d}g}|D]s}tj|\}}tj|d}|tj|d}||jvrt d|z|rtj|}||jvr<| tj |||j z||j vr=| tj |||j z8| tj |||j zu|S)Nrr!zDon't know how to compile %s)rtrsplitext splitdriveisabssrc_extensionsrbasename_rc_extensionsr%r| res_extension_mc_extensions obj_extension)rFsource_filenames strip_dir output_dir obj_namessrc_namerexts robject_filenameszMSVCCompiler.object_filenamess  Bz ( L LH'**H55KT37%%d++A.D d++,,-D$---#$BX$MNNN /w''..d)))  "',, 04t7I0I#K#KLLLL+++  "',, 04t7I0I#K#KLLLL  "',, 04t7I0I#K#KLLLLrc |js||||||||} | \}} }} } |pg} | d|r| |jn| |j| D];} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vrd|z}n||j vrQ|}d|z} ||jg| z|gz|gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jgd|d|gz|gztj tj |\}}tj ||dz}||jgd|zgz|gzn!#t $r}t#|d}~wwxYwt#d|d |d |z} ||jg| z| z||gz|z#t $r}t#|d}~wwxYw| S) Nz/cz/Tcz/Tpz/foz-hz-rrzDon't know how to compile z to z/Fo)rr_setup_compiler%extendrrrrtrr _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr|r)rFsourcesrrB include_dirsr extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_optsobjsrcr input_opt output_optmsgh_dirrc_dirrrrc_files rcompilezMSVCCompiler.compiles  OO   **:v|+2G^MM :F7%$* T"""  6    : ; ; ; ;    4 5 5 5? (? (C  :SS     +gooc**d(((!CK ,,,!CK +++ "S[ ,JJy72 *| ,/8k :;;;;),,,&s+++,+++,,-- ,JJy $eT6: ;>AU CDDD g..0@0@#0F0FGGGD! gllFD5LAAGJJy % } -07y 9::::*,,,&s+++,#l&)cc33$0111J ( DG9|3g=%z23)*++++& ( ( ("3''' (s[ B  B-,B-&D)) E3EEB.I I! II!)J,, K 6KK c|js||||\}}|||}|||rN|d|zgz}|r ||jg|zdS#t$r}t|d}~wwxYwtj d|dS)N)r/OUT:skipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkrrrrr r) rFroutput_libnamerr target_langoutput_filenamelib_argsrs rcreate_static_libzMSVCCompiler.create_static_libs  OO    $ 5 5gz J J*//;E0GG ??7O 4 4 C'O";!<> :D7L"6  5 IIN2334 5 5 5#4#/1E#,..  ! gll:GGO ??7O 4 4= Ci2226"7;GG"1!""5GG2"7GG"1GK&," 5 5"":#34444)K7")O";!<=G44J)&(g&6&6G$$_55'7'7#7 gll))(3355  [ 8999  & & G L L L ,+  /~... KK88 9 9 9 % DK=723333% % % %nn$ %11+wGGF!#) DD5D__ddK)JJ)[ *G 566666))))#C..() "! I0/ B B B B Bs0I44 J>J  J;K K5!K00K5ctj|tj|dz}|d|zdS)Nz .manifest/MANIFESTFILE:)rtrr|rr%)rFrrr% temp_manifests rrz"MSVCCompiler.manifest_setup_ldargssV   11K?AA  '-788888rc|D]5}|dr|ddd}n6dS|tjkrd}nd}||}|dS||fS)Nr/:r!rg) startswithrlrr_remove_visual_c_ref)rFrr%argr0r+s rrz$MSVCCompiler.manifest_get_embed_infos   C~~.//  # #q 1 1! 4   4 ). . .DDD 55mDDM  4d""rcz t|} |}|n#|wxYwtjdtj}tj|d|}d}tj|d|}tjdtj}tj||dSt|d} ||||S#|wxYw#t$rYdSwxYw)NzU|)rz*\s*zI|)w) openreadrrerDOTALLr`searchwriteOSError)rF manifest_file manifest_f manifest_bufpatterns rr4z!MSVCCompiler._remove_visual_c_refsR$ m,,J #)00   """"   """"jD G6'2|<D,D))D,, D:9D:c d|zS)Nz /LIBPATH:r>rFdirs rlibrary_dir_optionzMSVCCompiler.library_dir_options S  rc td)Nz>'**#"NNNNN# # 4rc |jD]b}tjtj||}tj|r|cSctjddD]b}tjtj||}tj|r|cSc|S)NPathr)rrtrr|rrrrl)rFexerZfns rrzMSVCCompiler.find_exes   Abgooa00#66Bw~~b!!   F#))#..  Abgooa0055Bw~~b!!    r)rrrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r)r9r:r; compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionrHrrrrr-rrr4rFrHrJrQrr>rrrr*s6MKFM---OWNWN$o5$%'56NMM!!,22)M ! ! ! !Q Q Q Q n$%$&@HIAERRRRp&* !&* CCCC:"&  ]C]C]C]C~ 9 9 9###0%%%V!!!NNN***$rr)r )/rtrrir:distutils.errorsrrrrrdistutils.ccompilerrr distutilsr distutils.utilr winreg OpenKeyExr"EnumKeyr$ EnumValuer,errorr# HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTrplatformmaxsize NATIVE_WIN64rCrYrXrrr@rrryrrrrrr>rrrmsf  ??????????????::::::::''''''  ^  <    !  "  ! #  '?CK%,?  3CGJK>HH6G>K2H  <.<.<.<.<.<.<.<.|,,,,,,,,\2      !!!F&&&&R     S== !Kg!U V VVjjjjj9jjjjjr