Your IP : 3.15.12.133


Current Path : /opt/alt/python35/lib64/python3.5/distutils/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/distutils/__pycache__/msvccompiler.cpython-35.opt-2.pyc



���]\�@sddlZddlZddlmZmZmZmZmZddlm	Z	m
Z
mZddlm
Z
dZy@ddlZdZeZejZejZejZejZWn�ek
r4yLddlZddlZdZeZejZejZejZejZWnek
r/e
jd�YnXYnXerYejejejej fZ!dd	�Z"d
d�Z#dd
�Z$Gdd�d�Z%dd�Z&dd�Z'dd�Z(Gdd�de	�Z)e&�dkre
j*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.cCs�yt||�}Wntk
r+dSYnXg}d}xDyt||�}Wntk
rcPYnX|j|�|d7}q;W|S)Nr�)�RegOpenKeyEx�RegError�
RegEnumKey�append)�base�key�handle�L�i�k�r�1/opt/alt/python35/lib64/python3.5/msvccompiler.py�	read_keys7s
	

rcCs�yt||�}Wntk
r+dSYnXi}d}xbyt||�\}}}Wntk
rlPYnX|j�}t|�|t|�<|d7}q;W|S)Nrr)rr
�RegEnumValue�lower�convert_mbcs)rrr�dr�name�value�typerrr�read_valuesHs
	
r cCsGt|dd�}|dk	rCy|d�}Wntk
rBYnX|S)N�decode�mbcs)�getattr�UnicodeError)�sZdecrrrr]s
rc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
MacroExpandercCsi|_|j|�dS)N)�macros�load_macros)�self�versionrrr�__init__gs	zMacroExpander.__init__cCs@x9tD]1}t||�}|r|||jd|<PqWdS)Nz$(%s))�HKEYSr r')r)Zmacro�pathrrrrrr�	set_macroks

zMacroExpander.set_macroc
Cs=d|}|jd|dd�|jd|dd�d}|jd|d	�y9|d
krv|jd|d�n|jd|d
�Wn1tk
r�}ztd��WYdd}~XnXd}xrtD]j}yt||�}Wntk
r�w�YnXt|d�}t|d||f�}	|	d|jd<q�WdS)Nz%Software\Microsoft\VisualStudio\%0.1fZVCInstallDirz	\Setup\VCZ
productdirZVSInstallDirz	\Setup\VSz Software\Microsoft\.NETFrameworkZFrameworkDirZinstallrootg@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))	r.�KeyErrorrr,rr
rr r')
r)r*ZvsbaseZnet�exc�pr�hrrrrrr(rs*


zMacroExpander.load_macroscCs6x/|jj�D]\}}|j||�}qW|S)N)r'�items�replace)r)r%r�vrrr�sub�szMacroExpander.subN)�__name__�
__module__�__qualname__r+r.r(r6rrrrr&fsr&cCs�d}tjj|�}|d
kr(dS|t|�}tj|d�jdd�\}}t|dd��d}|dkr�|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%
rHcCsXd}tjj|�}|dkr(dStjjd|�}tj|t|�|�S)Nz bit (r�Intel�)r?)rAr*rBrC)rFr�jrrr�get_build_architecture�srLcCsFg}x9|D]1}tjj|�}||kr
|j|�q
W|S)N)�osr-�normpathr)�pathsZ
reduced_pathsr1Znprrr�normalize_and_reduce_paths�s
rPc@smeZdZdZiZdgZdddgZdgZdgZeeeeZ	dZ
d	Zd
ZdZ
dZZd
Zddddd�Zdd�Zdddd�Zddddddddd�Zddddd�Zdddddddddddd�
Zdd�Zdd �Zd!d"�Zdd#d$�Zd%d&�Zd'd(d)�Zd*d+�ZdS),�MSVCCompilerZmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs�tj||||�t�|_t�|_|jdkr�|jdkrjd|_t|j�|_n	d|_d|j|_	nd|jd|_	d|_
dS)	NrI�zSoftware\Microsoft\VisualStudiozSoftware\Microsoft\DevstudiozVisual Studio version %szMicrosoft SDK compiler %sr:F)rr+rH�_MSVCCompiler__versionrL�_MSVCCompiler__arch�_MSVCCompiler__rootr&�_MSVCCompiler__macros�_MSVCCompiler__product�initialized)r)�verbose�dry_run�forcerrrr+�s		zMSVCCompiler.__init__cCs�g|_dtjkrfdtjkrf|jd�rfd|_d|_d|_d|_d|_n�|j	d�|_t
|j�d	kr�td
|j��|jd�|_|jd�|_|jd�|_|jd�|_|jd�|_|j
d�|j
d�y5x.tjdjd
�D]}|jj|�q.WWntk
r]YnXt|j�|_d
j|j�tjd<d|_|jdkr�ddddddg|_dddddddg|_n9ddddddg|_dddddddg|_dddg|_|jdkrOddddg|_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.�lib�include�;rIz/nologoz/Oxz/MDz/W3z/GXz/DNDEBUGz/Odz/MDdz/Z7z/D_DEBUGz/GS-z/DLLz/INCREMENTAL:NOrRz/INCREMENTAL:noz/DEBUGz	/pdb:NoneT)�_MSVCCompiler__pathsrM�environ�find_exe�cc�linkerr\�rc�mc�get_msvc_pathsrCrrW�set_path_env_varrDrr/rP�joinZpreprocess_optionsrT�compile_options�compile_options_debug�ldflags_sharedrS�ldflags_shared_debugZldflags_staticrX)r)r1rrr�
initialize�sR	-				



	zMSVCCompiler.initialize�cCs;|dkrd}g}x|D]}tjj|�\}}tjj|�d}|tjj|�d�}||jkr�td|��|r�tjj|�}||jkr�|j	tjj
|||j��q||jkr|j	tjj
|||j��q|j	tjj
|||j
��qW|S)NrnrzDon't know how to compile %s)rMr-�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	Cs|js|j�|j||||||�}	|	\}}
}}}|pOg}
|
jd�|rx|
j|j�n|
j|j�x�|
D]�}y||\}}Wntk
r�w�YnX|r�tj	j
|�}||jkr�d|}n�||jkrd|}n�||j
kr�|}d|}y)|j|jg||g|g�Wq�tk
r�}zt|��WYdd}~Xq�Xq�n||jkr�tj	j|�}tj	j|�}y�|j|jgd|d|g|g�tj	jtj	j|��\}}tj	j||d�}|j|jgd|g|g�Wq�tk
r�}zt|��WYdd}~Xq�Xq�ntd||f��d	|}y-|j|jg|
|||g|�Wq�tk
r}zt|��WYdd}~Xq�Xq�W|
S)
Nz/cz/Tcz/Tpz/foz-hz-rz.rcz"Don't know how to compile %s to %sz/Fo)rXrmZ_setup_compiler�extendrjrir/rMr-�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�compileWsj	






#$$#
#zMSVCCompiler.compilec	Cs�|js|j�|j||�\}}|j|d|�}|j||�r�|d|g}|riy|j|jg|�Wq�tk
r�}zt|��WYdd}~Xq�Xnt	j
d|�dS)Nrxz/OUT:zskipping %s (up-to-date))rXrm�_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_libcCsr|js|j�|j||�\}}|j|||�}|\}}}|rl|jdt|��t||||�}|dk	r�tjj	||�}|j
||�r^|tjkr�|	r�|j
dd�}q|jdd�}n|	r|j
}n	|j}g}x%|p"gD]}|jd|�q#W||||d|g}|dk	r�tjjtjj|��\}}tjj	tjj|d�|j|��}|jd|�|
r�|
|dd�<|r�|j|�|jtjj|��y|j|jg|�Wqntk
rZ}zt|��WYdd}~XqnXntjd|�dS)Nz5I don't know what to do with 'runtime_library_dirs': rz/EXPORT:z/OUT:rz/IMPLIB:zskipping %s (up-to-date))rXrmr�Z
_fix_lib_args�warn�strr	rMr-rhr�rZ
EXECUTABLErlrkrrorsr�r�r{Zmkpathrrcrrr
r�)r)Ztarget_descr�r�rxZ	librariesZlibrary_dirsZruntime_library_dirsZexport_symbolsr�r�r�Z
build_tempr�Z
fixed_argsZlib_optsZldflagsZexport_optsZsymZld_argsZdll_nameZdll_extZimplib_filer�rrr�link�sV	
						
"zMSVCCompiler.linkcCsd|S)Nz	/LIBPATH:r)r)�dirrrr�library_dir_optionszMSVCCompiler.library_dir_optioncCstd��dS)Nz<don't know how to set runtime library search path for MSVC++)r)r)r�rrr�runtime_library_dir_optionsz'MSVCCompiler.runtime_library_dir_optioncCs
|j|�S)N)r�)r)r\rrr�library_optionszMSVCCompiler.library_optioncCs�|r|d|g}n	|g}xW|D]K}xB|D]:}tjj||j|��}tjj|�r6|Sq6Wq)WdSdS)NZ_d)rMr-rhr��exists)r)�dirsr\r�Z	try_namesr�rZlibfilerrr�find_library_file#s	

zMSVCCompiler.find_library_filecCs�xH|jD]=}tjjtjj|�|�}tjj|�r
|Sq
WxUtjdjd�D]=}tjjtjj|�|�}tjj|�rb|SqbW|S)NZPathr^)r_rMr-rhr|�isfiler`rD)r)Zexer1�fnrrrra5s	!!zMSVCCompiler.find_exeZx86cCsts
gS|d}|jdkr<d|j|jf}nd|j|f}x`tD]X}t||�}|rV|jdkr�|jj||�jd�S||jd�SqVW|jdkr�x8tD]0}t|d|j�dk	r�|jd�Pq�WgS)	Nz dirsrRz6%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_regrSrUr,r rVr6rDr�)r)r-�platformrrrrrrrfKs(



zMSVCCompiler.get_msvc_pathscCsM|dkr|jd�}n|j|�}|rIdj|�tj|<dS)Nr\Zlibraryr^)rfrhrMr`)r)rr1rrrrgos
zMSVCCompiler.set_path_env_var)r7r8r9Z
compiler_typeZexecutablesr}r~rtrvrrrurwZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ
exe_extensionr+rmrzr�r�r�r�r�r�r�rarfrgrrrrrQ�sN			
BVF$rQg @z3Importing new compiler from distutils.msvc9compiler)rQ)r&)-rArMZdistutils.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&rHrLrPrQr�ZOldMSVCCompilerZdistutils.msvc9compilerrrrr�<module>sX(			

			



	-
��


?>