Your IP : 3.141.201.92


Current Path : /opt/alt/python310/lib64/python3.10/distutils/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/distutils/__pycache__/_msvccompiler.cpython-310.opt-2.pyc

o

6��f'N�@s�	ddlZddlZddlZddlmZmZmZmZmZddl	m
Z
mZddlm
Z
ddlmZddlmZdd�Zd	d
�Zddd
dd�Zdd�Zdd�Zddd�Zddddd�ZGdd�de
�ZdS)�N)�DistutilsExecError�DistutilsPlatformError�CompileError�LibError�	LinkError)�	CCompiler�gen_lib_options)�log)�get_platform)�countcCs ztjtjdtjtjBd�}Wntyt�d�YdSwd}d}|�_t�D]F}zt�	||�\}}}Wn
ty@Yn:w|ro|tj
krotj�
|�roztt|��}WnttfyaYq)w|dkro||kro||}}q)Wd�||fSWd�||fS1s�wY||fS)Nz'Software\Microsoft\VisualStudio\SxS\VC7)�accesszVisual C++ is not registered�NNr�)�winregZ	OpenKeyEx�HKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEY�OSErrorr	�debugrZ	EnumValueZREG_SZ�os�path�isdir�int�float�
ValueError�	TypeError)�key�best_version�best_dir�i�vZvc_dirZvt�version�r �>/opt/alt/python310/lib64/python3.10/distutils/_msvccompiler.py�_find_vc2015sH

�
�
��
��
�
�
�
�
r"c
Cs�	tj�d�ptj�d�}|sdSztjtj�|ddd�ddd	d
ddd
dg	ddd���}Wntjt	t
fy;YdSwtj�|ddd�}tj�|�rOd|fSdS)NzProgramFiles(x86)ZProgramFilesr
zMicrosoft Visual StudioZ	Installerzvswhere.exez-latestz-prereleasez	-requiresz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z	-propertyZinstallationPathz	-products�*�mbcs�strict)�encoding�errorsZVCZ	AuxiliaryZBuild�)r�environ�get�
subprocess�check_outputr�join�strip�CalledProcessErrorr�UnicodeDecodeErrorr)�rootrr r r!�_find_vc20178s0	����r2�x86Zx64ZarmZarm64)r3�	x86_amd64�x86_arm�	x86_arm64cCs\t�\}}|st�\}}|st�d�dStj�|d�}tj�|�s*t�d|�dS|dfS)Nz$No suitable Visual C++ version foundr
z
vcvarsall.batz%s cannot be found)r2r"r	rrrr-�isfile)�	plat_spec�_rr�	vcvarsallr r r!�_find_vcvarsall_s


r;c
Cs�t�d�rdd�tj��D�St|�\}}|std��ztjd�||�tj	d�j
ddd	�}WntjyI}zt�
|j�td
�|j���d}~wwdd�dd
�|��D�D�}|S)NZDISTUTILS_USE_SDKcSsi|]	\}}|��|�qSr ��lower)�.0r�valuer r r!�
<dictcomp>ss��z_get_vc_env.<locals>.<dictcomp>zUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)�stderrzutf-16le�replace)r'zError executing {}cSs$i|]\}}}|r|r|��|�qSr r<)r>rr9r?r r r!r@�s���css�|]}|�d�VqdS)�=N)�	partition)r>�liner r r!�	<genexpr>�s�z_get_vc_env.<locals>.<genexpr>)r�getenvr)�itemsr;rr+r,�formatZSTDOUT�decoder/r	�error�output�cmd�
splitlines)r8r:r9�out�exc�envr r r!�_get_vc_envqs2
�
�
�����rRcCsP	|st�d��tj�}|D]}tj�tj�|�|�}tj�|�r%|Sq|S�Nr)rrG�split�pathseprr-�abspathr7)Zexe�paths�p�fnr r r!�	_find_exe�s�rZr4r5r6)Zwin32z	win-amd64z	win-arm32z	win-arm64cs�eZdZ	dZiZdgZgd�ZdgZdgZeeeeZ	dZ
dZdZd	Z
d
ZZdZd%d
d�Zd&dd�Z		d'dd�Z		d(dd�Z			d)dd�Z										d*dd�Z�fdd�Zdd�Zdd �Zd!d"�Zd+d#d$�Z�ZS),�MSVCCompilerZmsvcz.c)z.ccz.cppz.cxx�.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs t�||||�d|_d|_dS)NF)r�__init__�	plat_name�initialized)�self�verboseZdry_runZforcer r r!r]�s
zMSVCCompiler.__init__NcCs
|durt�}|tvrtd�tt����t|}t|�}|s"td��|�dd�|_|j�t	j
�}td|�|_td|�|_
td|�|_td|�|_td	|�|_td
|�|_|�dd��t	j
�D]
}|rk|�|�t	j��q^|�dd��t	j
�D]
}|r�|�|�t	j��qvd|_gd
�|_gd�|_gd�}gd�}g|�d�|_g|�d�|_g|�d�d�d�|_g|�d�d�d�|_g|�|_g|�|_tj df|jtj df|jtj df|jtj!df|jtj!df|jtj!df|jtj"df|jtj"df|jtj"df|ji	|_#d|_$dS)Nz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.r�zcl.exezlink.exezlib.exezrc.exezmc.exezmt.exeZinclude�lib)�/nologoz/Ox�/W3z/GLz/DNDEBUGz/MD)rdz/Odz/MDdz/Zirez/D_DEBUG)rd�/INCREMENTAL:NO�/LTCG)rdrfrgz/DEBUG:FULLz/MANIFEST:EMBED,ID=1z/DLLz/MANIFEST:EMBED,ID=2z/MANIFESTUAC:NOFT)%r
�PLAT_TO_VCVARSrrI�tuplerRr*�_pathsrTrrUrZ�cc�linkerrc�rc�mcZmtZadd_include_dir�rstrip�sepZadd_library_dirZpreprocess_options�compile_options�compile_options_debugZldflags_exeZldflags_exe_debugZldflags_sharedZldflags_shared_debugZldflags_staticZldflags_static_debugrZ
EXECUTABLEZ
SHARED_OBJECTZSHARED_LIBRARY�_ldflagsr_)r`r^r8Zvc_envrW�dir�ldflagsZ
ldflags_debugr r r!�
initialize�s`
���



�
zMSVCCompiler.initializerbcsXi�fdd��jD���fdd��j�jD����pd����fdd�}tt||��S)Nc�i|]}|�j�qSr )�
obj_extension�r>�ext�r`r r!r@"�z1MSVCCompiler.object_filenames.<locals>.<dictcomp>crwr )�
res_extensionryr{r r!r@#r|rbcs�tj�|�\}}�rtj�|�}ntj�|�\}}|�tjjtjjf�r*|dd�}ztj��|�|�WSt	yDt
d�|���w)N�zDon't know how to compile {})rr�splitext�basename�
splitdrive�
startswithrp�altsepr-�LookupErrorrrI)rX�baserzr9)�ext_map�
output_dir�	strip_dirr r!�
make_out_path(s�z4MSVCCompiler.object_filenames.<locals>.make_out_path)�src_extensions�_rc_extensions�_mc_extensions�list�map)r`Zsource_filenamesr�r�r�r )r�r�r`r�r!�object_filenamess��zMSVCCompiler.object_filenamesc	CsL|js|��|�||||||�}	|	\}}
}}}|pg}
|
�d�|r*|
�|j�n|
�|j�d}|
D]�}z||\}}Wn	tyGYq4w|rPtj	�
|�}||jvrZd|}n�||jvrfd|}d}n�||j
vr�|}d|}z|�|jg|||g�Wnty�}zt|��d}~wwq4||jvr�tj	�|�}tj	�|�}z.|�|jd|d||g�tj	�tj	�|��\}}tj	�||d	�}|�|jd||g�Wnty�}zt|��d}~wwq4td
�||���|jg|
|}|r�|�d�|�|�|�d|�|�|�z|�|�Wq4t�y#}zt|��d}~ww|
S)
Nz/cFz/Tcz/TpTz/foz-hz-rr\z"Don't know how to compile {} to {}z/EHscz/Fo)r_rvZ_setup_compile�append�extendrrrq�KeyErrorrrrV�
_c_extensions�_cpp_extensionsr��spawnrmrrr��dirnamernrr�r-rIrk)r`Zsourcesr�ZmacrosZinclude_dirsr�
extra_preargs�extra_postargsZdependsZcompile_info�objectsZpp_optsZbuildZcompile_optsZadd_cpp_opts�obj�srcrzZ	input_optZ
output_opt�msgZh_dirZrc_dirr�r9Zrc_file�argsr r r!�compile>s�
�
�



��
���


��zMSVCCompiler.compilec	
Cs�|js|��|�||�\}}|j||d�}|�||�rN|d|g}|r&	zt�d|jd�|��|�	|jg|�WdSt
yM}zt|��d}~wwt�d|�dS)N)r��/OUT:�Executing "%s" %s� �skipping %s (up-to-date))r_rv�_fix_object_args�library_filename�
_need_linkr	rrcr-r�rr)	r`r�Zoutput_libnamer�r�target_lang�output_filenameZlib_argsr�r r r!�create_static_lib�s$���zMSVCCompiler.create_static_libc
Cs�|js|��|�||�\}}|�|||�}|\}}}|r&|�dt|��t||||�}|dur8tj�	||�}|�
||�r�|j||	f}dd�|pKgD�}||||d|g}tj�|d�}|dur�tj�
tj�|��\}}tj�	||�|��}|�d|�|
r�|
|dd�<|r�|�|�tj�tj�|��}|�|�zt�d|jd�	|��|�|jg|�WdSty�}zt|��d}~wwt�d	|�dS)
Nz5I don't know what to do with 'runtime_library_dirs': cSsg|]}d|�qS)z/EXPORT:r )r>Zsymr r r!�
<listcomp>�r|z%MSVCCompiler.link.<locals>.<listcomp>r�rz/IMPLIB:r�r�r�)r_rvr�Z
_fix_lib_args�warn�strrrrr-r�rsr�rr�r�r�r�rVZmkpathr	rrlr�rr)r`Ztarget_descr�r�r�Z	librariesZlibrary_dirsZruntime_library_dirsZexport_symbolsrr�r�Z
build_tempr�Z
fixed_argsZlib_optsruZexport_optsZld_argsZdll_nameZdll_extZimplib_filer�r r r!�link�sb�
��
��
��

��zMSVCCompiler.linkc	s<t�d�}z|jtjd<t��|�W|tjd<S|tjd<wrS)rrGrjr)�superr�)r`rMZold_path��	__class__r r!r��s

zMSVCCompiler.spawncCsd|S)Nz	/LIBPATH:r �r`rtr r r!�library_dir_optionszMSVCCompiler.library_dir_optioncCstd��)Nz:don't know how to set runtime library search path for MSVC)rr�r r r!�runtime_library_dir_options�z'MSVCCompiler.runtime_library_dir_optioncCs
|�|�S�N)r�)r`rcr r r!�library_option
s
zMSVCCompiler.library_optioncCs\|r	|d|g}n|g}|D]}|D]}tj�||�|��}tj�|�r*|SqqdS)NZ_d)rrr-r�r7)r`�dirsrcrZ	try_namesrt�nameZlibfiler r r!�find_library_file
s��zMSVCCompiler.find_library_file)rrrr�)rrb)NNNrNNN)NrN)
NNNNNrNNNN)r)�__name__�
__module__�__qualname__Z
compiler_typeZexecutablesr�r�r�r�r�r}rxZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ
exe_extensionr]rvr�r�r�r�r�r�r�r�r��
__classcell__r r r�r!r[�s^��

P
�"
�]
�
�Er[r�)rr+rZdistutils.errorsrrrrrZdistutils.ccompilerrrZ	distutilsr	Zdistutils.utilr
�	itertoolsrr"r2ZPLAT_SPEC_TO_RUNTIMEr;rRrZrhr[r r r r!�<module>s2!�
�

?>