VULN_CHECK_I913V6 SShL,dZddlZddlZddlZddlZddlmZeje5ddl Z dddddl m Z m Z m Z mZmZddlmZmZddlmZddlmZddlmZd Zd Zd d d ddZdZdZddZd ddddZGddeZ y#1swY[xYw)adistutils._msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for Microsoft Visual Studio 2015. The module is compatible with VS 2015 and later. You can find legacy support for older versions in distutils.msvc9compiler and distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countcp tjtjdtjtjz}d}d}|5tD]y} tj||\}}}|s!|tjk(s5tjj|sU tt|}|dk\sp||kDsv||}}{ddd||fS#t $rt jdYywxYw#t $rY>- . P"**..2PD && 3[-C"  %'! ( 77<<dK 9D ww}}T4x   ) )74F GsACC;:C;x86x64armarm64)rC x86_amd64x86_arm x86_arm64ct\}}|s t\}}|stjdytj j |d}tj j|stjd|y|dfS)Nz$No suitable Visual C++ version foundrz vcvarsall.batz%s cannot be found)rBr+r rrrr=isfile) plat_spec_r$r# vcvarsalls r*_find_vcvarsallrOvso.KAx !- h  89 X7I 77>>) $ & 2 d?ctjdr@tjjDcic]\}}|j |c}}St |\}}|s t d tjd|d|dtjjdd }d |j!DDcic]\}}}|r|r|j |}}}}|Scc}}w#tj$r<}tj|jt d |jd}~wwxYwcc}}}w) NDISTUTILS_USE_SDKzUnable to find vcvarsall.batz cmd /u /c "z" z && set)stderrzutf-16lereplace)r4zError executing c3>K|]}|jdyw)=N) partition).0lines r* z_get_vc_env..sO>NddnnS1>Ns)rgetenvr9itemslowerrOrr;r<STDOUTdecoder?r erroroutputcmd splitlines)rLr"valuerNrMoutexcenvs r* _get_vc_envrhs: yy$%57ZZ5E5E5GH5GzsE U"5GHH"9-LIq $%CDDC%%)Byk 9$$  &I& . Pcnn>NO OMCE 5 UO  J+I  ( (C #**$'7y%ABBC s#C02=C6 E6E 7EEc<|s2tjdjtj}|D]b}tjj tjj ||}tjj|s`|cS|S)atReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. r)rr[splitpathseprr=abspathrK)exepathspfns r* _find_exerqsk  &!'' 3  WW\\"''//!,c 2 77>>" I JrPrGrHrI)win32z win-amd64z win-arm32z win-arm64c<eZdZdZdZiZdgZgdZdgZdgZ eezeze zZ dZ dZ d Z d Zd xZZd Zdfd ZedZedZddZefdZ ddZ ddZ ddZfdZej>fdZ dZ!dZ"dZ#d dZ$xZ%S)! MSVCCompilerztConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.msvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.execDt||||d|_d|_y)NF)super__init__ plat_name initialized)selfverbosedry_runforce __class__s r*ryzMSVCCompiler.__init__s# '51 rPc|j|jdd|_|j|jdd|_y)z3 Set class-level include/lib dirs. includelibN) _parse_pathr: include_dirs library_dirs)clsvc_envs r* _configurezMSVCCompiler._configures< ??6::i+DE??6::eR+@ArPc|jtjDcgc]$}|s|jtj&c}Scc}wN)rjrrkrstripsep)valdirs r*rzMSVCCompiler._parse_paths8.1ii .CK.Css 266".CKKKs A!Ac| t}|tvrtdttt|}t |}|s td|j ||j dd|_|jjtj}td||_ td||_ td||_td||_td ||_td ||_d|_gd |_gd |_gd }gd}g|d|_g|d|_g|ddd|_g|ddd|_g||_g||_t6j8df|j*t6j8df|j*t6j8df|j,t6j:df|j.t6j:df|j.t6j:df|j0t6j<df|j2t6j<df|j2t6j<df|j4i |_d|_ y)Nz--plat-name must be one of z7Unable to find a compatible Visual Studio installation.rrzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exe)/nologoz/O2/W3z/GLz/DNDEBUGz/MD)rz/Odz/MDdz/Zirz/D_DEBUG)r/INCREMENTAL:NO/LTCG)rrrz /DEBUG:FULLz/MANIFEST:EMBED,ID=1z/DLLz/MANIFEST:EMBED,ID=2z/MANIFESTUAC:NOFT)!r PLAT_TO_VCVARSrtuplerhrr:_pathsrjrrkrqcclinkerrrcmcmtpreprocess_optionscompile_optionscompile_options_debug ldflags_exeldflags_exe_debugldflags_sharedldflags_shared_debugldflags_staticldflags_static_debugr EXECUTABLE SHARED_OBJECTSHARED_LIBRARY_ldflagsr{)r|rzrLrrnldflags ldflags_debugs r* initializezMSVCCompiler.initializes  $I N *(-eN.C-DE  #9- Y'(L  jj,  !!"**-He, E2 Y.He,He,He,"& S& ":N =W=&<=!I=!I2H!I    #     % % %  #%   % ! )j$4m$4! ! !4 ($*:*:  ! !5 )4+;+;  ! !4 ($*@*@  $ $d +T-@-@  $ $e ,d.A.A  $ $d +T-F-F  % %t ,d.A.A  % %u -t/B/B  % %t ,d.G.G    rPcit||j|jzDcic]}||jc}Scc}wr)rxout_extensions_rc_extensions_mc_extensions res_extension)r|extrs r*rzMSVCCompiler.out_extensionsAs] g$  ..1D1DDDCT'''D  sAc |js|j|j||||||} | \}} }} } |xsg} | jd|r| j |j n| j |j d}| D]} | |\}}|rtjj|}||jvrd|z}nV||jvr d|z}d}n?||jvr-|}d|z} |j|jg| z||gz||j$vrtjj'|}tjj'|} |j|j(d|d||gtjj+tjj-|\}}tjj/||d z}|j|jd|z|gt#d |d ||j0g| z| z}|r|jd |j |d |zf|j | |j|| S#t$rY wxYw#t $r}t#|d}~wwxYw#t $r}t#|d}~wwxYw#t $r}t#|d}~wwxYw)Nz/cFz/Tcz/TpTz/foz-hz-rrvzDon't know how to compile z to z/EHscz/Fo)r{r_setup_compileappendextendrrKeyErrorrrrl _c_extensions_cpp_extensionsrspawnrrrrdirnamersplitextbasenamer=r)r|sources output_dirmacrosrr extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_opts add_cpp_optsobjsrcr input_opt output_optmsgh_dirrc_dirbaserMrc_fileargss r*compilezMSVCCompiler.compileKs OO **  gw ;G7%$* D!     : : ;    4 4 5 C  :Sggooc*d(((!CK ,,,!CK # +++ "S[ ,JJy72j)5LLM+++,- ,JJudFCHI gg..rww/?/?/DEGD! ggll64%<@GJJg>?#%?uD#NOOGG9|+g5D G$ KKECK0 1 KK ' ( 4 {B}  &*,&s++,2*,&s++,& ("3'' (s[J ?$J1B$J86K JJ J5% J00J58 K K  K K- K((K-c|js|j|j||\}}|j||}|j ||r]|d|zgz}|r t j d|jdj||j|jg|zyt j d|y#t$r}t|d}~wwxYw)N)r/OUT:Executing "%s" %s skipping %s (up-to-date)) r{r_fix_object_argslibrary_filename _need_linkr rrr=rrr) r|routput_libnamerr target_langoutput_filenamelib_argsrs r*create_static_libzMSVCCompiler.create_static_libs OO "33GZH//:/V ??7O 4'O";!<W=XX 4J)&(gg&6&6GG$$_5'#7!ggll:t7L7LX7VW zK78+ ~.)IJJ KK # % -t{{CHHWFallback spawn triggered. Please update distutils monkeypatch.z os.environ) typer!rwarningsrmockpatchrrxrrd)r|rbrgbagrfrs r*rzMSVCCompiler._fallback_spawns"d5"b!# I   2#c(BC   VW ZZ__\3 / c*CI0 / /s<BB =8B=8B5B BBBc d|zS)Nz /LIBPATH:rr|rs r*library_dir_optionzMSVCCompiler.library_dir_options S  rPctd)Nz:don't know how to set runtime library search path for MSVC)rrs r*runtime_library_dir_optionz'MSVCCompiler.runtime_library_dir_option"s$ H  rPc$|j|Sr)r)r|rs r*library_optionzMSVCCompiler.library_option's$$S))rPc|r|dz|g}n|g}|D]]}|D]V}tjj||j|}tjj |sR|ccS_y)N_d)rrr=rrK)r|dirsrr try_namesrnamelibfiles r*find_library_filezMSVCCompiler.find_library_file*si tS)IIC!'',,sD,A,A$,GH77>>'*"N"rP)rrrr)NNNrNNN)NrN) NNNNNrNNNN)r)&__name__ __module__ __qualname____doc__ compiler_type executablesrrrrsrc_extensionsr obj_extensionstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionry classmethodr staticmethodrrpropertyrrrrr contextlibcontextmanagerrrrr r __classcell__)rs@r*rtrtsA3MKFM-OWNWN#_4~EVNMM!!,22)M! BBLLN d  \~NRC2!CCJ ++,! *rPrtr)!rrr;r!r unittest.mockrsuppress ImportErrorrr4rrrrr ccompilerr r _logr utilr itertoolsr r+rBPLAT_SPEC_TO_RUNTIMErOrhrqrrtrrPr*r,s Z%&2":'V  &4, x9xU&%s B  B