ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib64/python3.8/distutils/__pycache__/_msvccompiler.cpython-38.pyc
U

e5dRN@sdZddlZddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZddlm
Z
mZddlmZddlmZddlmZdd	Zd
dZdd
dddZddZddZdddZdddddZGddde
ZdS)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)countcCsztjtjdtjtjBd}Wn tk
r>tdYdSXd}d}|tD]}zt	||\}}}Wntk
rYqYnX|rT|tj
krTtj
|rTztt|}Wnttfk
rYqTYnX|dkrT||krT||}}qTW5QRX||fS)Nz'Software\Microsoft\VisualStudio\SxS\VC7)accesszVisual C++ is not registeredNNr)winregZ	OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr	debugrZ	EnumValueZREG_SZospathisdirintfloat
ValueError	TypeError)keybest_versionbest_dirivZvc_dirZvtversionr //usr/lib64/python3.8/distutils/_msvccompiler.py_find_vc2015s2




r"c
Csddl}tjdptjd}|s(dSz8tjtj|dddd	d
ddd
dddg	ddd}Wntj	t
tfk
r~YdSXtj|ddd}tj|rd|fSdS)aJReturns "15, path" based on the result of invoking vswhere.exe
    If no install is found, returns "None, None"

    The version is returned to avoid unnecessarily changing the function
    result. It may be ignored when the path is not None.

    If vswhere.exe is not available, by definition, VS 2017 is not
    installed.
    rNzProgramFiles(x86)ZProgramFilesr
zMicrosoft Visual StudioZ	Installerzvswhere.exez-latestz-prereleasez	-requiresz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z	-propertyZinstallationPathz	-products*mbcsstrict)encodingerrorsZVCZ	AuxiliaryZBuild)
jsonrenvironget
subprocesscheck_outputrjoinstripCalledProcessErrorrUnicodeDecodeErrorr)r)rootrr r r!_find_vc2017:s2
r3x86Zx64ZarmZarm64)r4	x86_amd64x86_arm	x86_arm64cCs\t\}}|st\}}|s*tddStj|d}tj|sTtd|dS|dfS)Nz$No suitable Visual C++ version foundr
z
vcvarsall.batz%s cannot be found)r3r"r	rrrr.isfile)	plat_spec_rr	vcvarsallr r r!_find_vcvarsallcs


r<c
CstdrddtjDSt|\}}|s6tdz&tjd||tj	dj
ddd	}Wn@tjk
r}z t
|jtd
|jW5d}~XYnXdddd
|DD}|S)NZDISTUTILS_USE_SDKcSsi|]\}}||qSr lower).0rvaluer r r!
<dictcomp>wsz_get_vc_env.<locals>.<dictcomp>zUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)stderrzutf-16lereplace)r'zError executing {}cSs$i|]\}}}|r|r||qSr r=)r?rr:r@r r r!rAs
css|]}|dVqdS)=N)	partition)r?liner r r!	<genexpr>sz_get_vc_env.<locals>.<genexpr>)rgetenvr*itemsr<rr,r-formatZSTDOUTdecoder0r	erroroutputcmd
splitlines)r9r;r:outexcenvr r r!_get_vc_envus0


rScCsN|stdtj}|D].}tjtj||}tj|r|Sq|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)rrHsplitpathseprr.abspathr8)Zexepathspfnr r r!	_find_exes	
rZr5r6r7)Zwin32z	win-amd64z	win-arm32z	win-arm64c
seZdZdZdZiZdgZdddgZdgZdgZ	eeee	Z
d	Zd
ZdZ
dZd
ZZdZd(ddZd)ddZd*ddZd+ddZd,ddZd-ddZfddZd d!Zd"d#Zd$d%Zd.d&d'ZZS)/MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++,
       as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs t||||d|_d|_dS)NF)r__init__	plat_nameinitialized)selfverboseZdry_runZforcer r r!r]szMSVCCompiler.__init__NcCs
|jrtd|dkrt}|tkr6tdttt|}t|}|sRtd|dd|_	|j	
tj}t
d||_t
d||_t
d||_t
d	||_t
d
||_t
d||_|dd
tjD]}|r||tjq|d
d
tjD]}|r||tjqd|_ddddddg|_ddddddg|_dddg}ddddg}|d!|_|d"|_|d#|_|d$|_||_||_ t!j"df|jt!j"df|jt!j"d f|jt!j#df|jt!j#df|jt!j#d f|jt!j$df|jt!j$df|jt!j$d f|j i	|_%d |_dS)%Nzdon't init multiple timesz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exeZincludelibz/nologoz/Oxz/W3z/GLz/DNDEBUGz/MDz/Odz/MDdz/Ziz/D_DEBUGz/INCREMENTAL:NOz/LTCGz/DEBUG:FULL/MANIFEST:EMBED,ID=1/DLL/MANIFEST:EMBED,ID=2/MANIFESTUAC:NOFT)rd)rd)rerfrg)rerfrg)&r_AssertionErrorr
PLAT_TO_VCVARSrrJtuplerSr+_pathsrTrrUrZcclinkerrcrcmcZmtZadd_include_dirrstripsepZadd_library_dirZpreprocess_optionscompile_optionscompile_options_debugZldflags_exeZldflags_exe_debugZldflags_sharedZldflags_shared_debugZldflags_staticZldflags_static_debugrZ
EXECUTABLEZ
SHARED_OBJECTZSHARED_LIBRARY_ldflags)r`r^r9Zvc_envrWdirldflagsZ
ldflags_debugr r r!
initializes



zMSVCCompiler.initializerbcsTfddjDfddjjDp4dfdd}tt||S)Ncsi|]}|jqSr )
obj_extensionr?extr`r r!rA&sz1MSVCCompiler.object_filenames.<locals>.<dictcomp>csi|]}|jqSr )
res_extensionryr{r r!rA'srbcstj|\}}r"tj|}n2tj|\}}|tjjtjjfrT|dd}ztj||WSt	k
rt
d|YnXdS)NzDon't know how to compile {})rrsplitextbasename
splitdrive
startswithrqaltsepr.LookupErrorrrJ)rXbaserzr:)ext_map
output_dir	strip_dirr r!
make_out_path,sz4MSVCCompiler.object_filenames.<locals>.make_out_path)src_extensions_rc_extensions_mc_extensionslistmap)r`Zsource_filenamesrrrr )rrr`rr!object_filenames!szMSVCCompiler.object_filenamesc	Cs|js||||||||}	|	\}}
}}}|p6g}
|
d|rT|
|jn|
|jd}|
D]}z||\}}Wntk
rYqhYnX|rtj	
|}||jkrd|}nD||jkrd|}d}n*||j
kr@|}d|}z||jg|||gWqhtk
r:}zt|W5d}~XYqhXqhn||jkrtj	|}tj	|}z\||jd|d||gtj	tj	|\}}tj	||d	}||jd||gWqhtk
r}zt|W5d}~XYqhXqhntd
|||jg|
|}|r"|d|||d|||z||Wqhtk
r~}zt|W5d}~XYqhXqh|
S)
Nz/cFz/Tcz/TpTz/foz-hz-rr\z"Don't know how to compile {} to {}z/EHscz/Fo)r_rwZ_setup_compileappendextendrsrrKeyErrorrrrV
_c_extensions_cpp_extensionsrspawnrnrrrdirnameror~rr.rJrl)r`ZsourcesrZmacrosZinclude_dirsr
extra_preargsextra_postargsZdependsZcompile_infoobjectsZpp_optsZbuildZcompile_optsZadd_cpp_optsobjsrcrzZ	input_optZ
output_optmsgZh_dirZrc_dirrr:Zrc_fileargsr r r!compileBsx








zMSVCCompiler.compilec	
Cs|js||||\}}|j||d}|||r|d|g}|rJz,td|jd||	|jg|Wqt
k
r}zt|W5d}~XYqXntd|dS)N)r/OUT:Executing "%s" %s skipping %s (up-to-date))r_rw_fix_object_argslibrary_filename
_need_linkr	rrcr.rrr)	r`rZoutput_libnamerrtarget_langoutput_filenameZlib_argsrr r r!create_static_libszMSVCCompiler.create_static_libc
Cs|js||||\}}||||}|\}}}|rL|dt|t||||}|dk	rptj	||}|
||r|j||	f}dd|pgD}||||d|g}tj|d}|dk	rtj
tj|\}}tj	|||}|d||
r|
|dd<|r.||tjtj|}||z,td|jd	|||jg|Wn,tk
r}zt|W5d}~XYnXntd	|dS)
Nz5I don't know what to do with 'runtime_library_dirs': cSsg|]}d|qS)z/EXPORT:r )r?Zsymr r r!
<listcomp>sz%MSVCCompiler.link.<locals>.<listcomp>rrz/IMPLIB:rrr)r_rwrZ
_fix_lib_argswarnstrrrrr.rrtrr~rrrrrVZmkpathr	rrmrrr)r`Ztarget_descrrrZ	librariesZlibrary_dirsZruntime_library_dirsZexport_symbolsrrrZ
build_temprZ
fixed_argsZlib_optsrvZexport_optsZld_argsZdll_nameZdll_extZimplib_filerr r r!links`





zMSVCCompiler.linkc	s8td}z|jtjd<t|WS|tjd<XdS)Nr)rrHr*rksuperr)r`rNZold_path	__class__r r!rs

zMSVCCompiler.spawncCsd|S)Nz	/LIBPATH:r r`rur r r!library_dir_optionszMSVCCompiler.library_dir_optioncCstddS)Nz:don't know how to set runtime library search path for MSVC)rrr r r!runtime_library_dir_option
sz'MSVCCompiler.runtime_library_dir_optioncCs
||S)N)r)r`rcr r r!library_optionszMSVCCompiler.library_optioncCs\|r|d|g}n|g}|D]:}|D]0}tj|||}tj|r$|Sq$qdS)NZ_d)rrr.rr8)r`dirsrcrZ	try_namesrunameZlibfiler r r!find_library_fileszMSVCCompiler.find_library_file)rrr)N)rrb)NNNrNNN)NrN)
NNNNNrNNNN)r)__name__
__module____qualname____doc__Z
compiler_typeZexecutablesrrrrrr|rxZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ
exe_extensionr]rwrrrrrrrrr
__classcell__r r rr!r[sf


P
"
]

Er[)N)rrZshutilstatr,rZdistutils.errorsrrrrrZdistutils.ccompilerrrZ	distutilsr	Zdistutils.utilr
	itertoolsrr"r3ZPLAT_SPEC_TO_RUNTIMEr<rSrZrir[r r r r!<module>s4#