Viewing File: /opt/alt/python35/lib64/python3.5/distutils/__pycache__/msvc9compiler.cpython-35.opt-2.pyc



]w@sddlZddlZddlZddlZddlmZmZmZmZm	Z	ddl
mZmZm
Z
ddlmZddlmZddlZejZejZejZejZejejejejfZej dkoej!d&kZ"e"rd	Z#d
Z$dZ%ndZ#d
Z$dZ%ddddddiZ&GdddZ'GdddZ(ddZ)ddZ*ddZ+ddZ,dd d!Z-e)Z.e.d"kred#e.Gd$d%d%eZ/dS)'N)DistutilsExecErrorDistutilsPlatformErrorCompileErrorLibError	LinkError)	CCompilergen_preprocess_optionsgen_lib_options)log)get_platformwin32 z1Software\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\.NETFrameworkx86z	win-amd64amd64zwin-ia64Zia64c@speZdZddZeeZddZeeZddZeeZddZeeZd	S)
RegcCsMx:tD]2}|j||}|r||kr||SqWt|dS)N)HKEYSread_valuesKeyError)clspathkeybasedr2/opt/alt/python35/lib64/python3.5/msvc9compiler.py	get_valueAs

z
Reg.get_valuecCsyt||}Wntk
r+dSYnXg}d}xDyt||}Wntk
rcPYnX|j||d7}q;W|S)Nr)RegOpenKeyExRegError
RegEnumKeyappend)rrrhandleLikrrr	read_keysIs
	

z
Reg.read_keysc	Csyt||}Wntk
r+dSYnXi}d}xhyt||\}}}Wntk
rlPYnX|j}|j|||j|<|d7}q;W|S)Nrr)rrRegEnumValuelowerconvert_mbcs)	rrrr"rr$namevaluetyperrrr[s
	
zReg.read_valuescCsGt|dd}|dk	rCy|d}Wntk
rBYnX|S)Ndecodembcs)getattrUnicodeError)sZdecrrrr)qs
zReg.convert_mbcsN)	__name__
__module____qualname__rclassmethodr&rr)staticmethodrrrrr=src@s@eZdZddZddZddZddZd	S)

MacroExpandercCs'i|_t||_|j|dS)N)macrosVS_BASEvsbaseload_macros)selfversionrrr__init__}s	
zMacroExpander.__init__cCs!tj|||jd|<dS)Nz$(%s))rrr8)r<Zmacrorrrrr	set_macroszMacroExpander.set_macrocCsT|jd|jdd|jd|jdd|jdtdy2|dkrl|jd	td
ntd
Wntk
rtdYnX|dkr|jd
|jd|jdtdn~d}xutD]m}yt||}Wntk
rwYnXt	|d}t
j|d||f}|d|jd<qWdS)NZVCInstallDirz	\Setup\VC
productdirZVSInstallDirz	\Setup\VSZFrameworkDirZinstallrootg @ZFrameworkSDKDirzsdkinstallrootv2.0aPython was built with Visual Studio 2008;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2008 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.g"@ZFrameworkVersionzclr versionZ
WindowsSdkDirZcurrentinstallfolderz.Software\Microsoft\NET Framework Setup\Productrz%s\%sr=z$(FrameworkVersion))
r?r:NET_BASErrWINSDK_BASErrrr rrr8)r<r=prhrrrrrr;s.



zMacroExpander.load_macroscCs6x/|jjD]\}}|j||}qW|S)N)r8itemsreplace)r<r1r%vrrrsubszMacroExpander.subN)r2r3r4r>r?r;rHrrrrr7{sr7cCsd}tjj|}|d
kr(dS|t|}tj|djdd\}}t|ddd}|dkr|d7}t|ddd}|dkrd	}|dkr||SdS)NzMSC v.r r

g$@r)sysr=findlensplitint)prefixr$r1restZmajorVersionZminorVersionrrrget_build_versions%
rVcCsFg}x9|D]1}tjj|}||kr
|j|q
W|S)N)osrnormpathr!)pathsZ
reduced_pathsrCZnprrrnormalize_and_reduce_pathss
rZcCsX|jtj}g}x'|D]}||kr|j|qWtjj|}|S)N)rRrWpathsepr!join)variableZoldListZnewListr$ZnewVariablerrrremoveDuplicatess
r^c
Cs^t|}ytjd|d}Wn%tk
rKtjdd}YnX|sftjj|rd|}tj	j
|d}|rtjj|rtjj|tjtjd}tjj
|}tjj|stjd|dSntjd||s"tjddStjj|d	}tjj|rM|Stjd
dS)Nz%s\Setup\VCr@z%Unable to find productdir in registryzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz
vcvarsall.batzUnable to find vcvarsall.bat)r9rrrr
debugrWrisdirenvirongetr\pardirabspathisfile)r=r:r@ZtoolskeyZtoolsdir	vcvarsallrrrfind_vcvarsalls2





!

rgcCst|}td}i}|dkr6tdtjd||tjd||fdtjd	tj}z|j\}}|j	d
krt|j
d|j
d}x|jdD]}tj
|}d
|krq|j}|jd
d\}	}
|	j}	|	|kr|
jtjrQ|
dd}
t|
||	<qWWd|jj|jjXt|t|krttt|j|S)NincludeliblibpathrzUnable to find vcvarsall.batz'Calling 'vcvarsall.bat %s' (version=%s)z
"%s" %s & setstdoutstderrrr.
=r)rhrirjrrM)rgsetrr
r_
subprocessPopenPIPEcommunicatewaitr-rRrr)stripr(endswithrWr[r^rkcloserlrQ
ValueErrorstrlistkeys)r=ZarchrfZinterestingresultpopenrkrllinerr+rrrquery_vcvarsalls<	
rg @z(VC %0.1f is not supported by this modulec@syeZdZdZiZdgZdddgZdgZdgZeeeeZ	dZ
d	Zd
ZdZ
dZZd
ZdddddZdddZddddZdddddddddZdddddZdddddddddddd
ZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zdd)d*Zd+d,ZdS)-MSVCCompilerZmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCsPtj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF)	rr>VERSION_MSVCCompiler__versionZ_MSVCCompiler__root_MSVCCompiler__paths	plat_name_MSVCCompiler__archinitialized)r<verbosedry_runforcerrrr>Js					zMSVCCompiler.__init__NcCs|dkrt}d$}||kr:td|fdtjkrdtjkr|jdrd|_d|_d	|_d
|_d|_	n
|tks|dkrt
|}nt
tdt
|}tt|}|d
j
tj|_|dtjd<|dtjd<t|jdkrJtd|j|jd|_|jd|_|jd	|_|jd
|_|jd|_	y5x.tjd
j
dD]}|jj|qWWntk
rYnXt|j|_dj|jtjd
<d|_|jdkrgdddddg|_ddddddg|_n9ddddddg|_dddddddg|_dddg|_|jd krddd!d"g|_dg|_d#|_dS)%Nr	win-amd64win-ia64z--plat-name must be one of %sZDISTUTILS_USE_SDKZMSSdkzcl.exezlink.exezlib.exezrc.exezmc.exe_rrirhrzxPython was built with %s, and extensions need to be built with the same version of the compiler, but it isn't installed.;rz/nologoz/Oxz/MDz/W3z/DNDEBUGz/Odz/MDdz/Z7z/D_DEBUGz/GS-z/DLLz/INCREMENTAL:NOz/INCREMENTAL:noz/DEBUGT)rrr)rrrWrafind_execclinkerrircmcPLAT_TO_VCVARSrrrRr[rrQZ_MSVCCompiler__productr!rrZr\Zpreprocess_optionsrcompile_optionscompile_options_debugldflags_sharedrldflags_shared_debugZldflags_staticr)r<rZok_platsZ	plat_specZvc_envrCrrr
initializeUsd	
-				


	zMSVCCompiler.initializecCs;|dkrd}g}x|D]}tjj|\}}tjj|d}|tjj|d}||jkrtd||rtjj|}||jkr|j	tjj
|||jq||jkr|j	tjj
|||jq|j	tjj
|||j
qW|S)NrrzDon't know how to compile %s)rWrsplitext
splitdriveisabssrc_extensionsrbasename_rc_extensionsr!r\
res_extension_mc_extensions
obj_extension)r<Zsource_filenamesZ	strip_dir
output_dirZ	obj_namesZsrc_namerextrrrobject_filenamess(
zMSVCCompiler.object_filenamesc	Cs|js|j|j||||||}	|	\}}
}}}|pOg}
|
jd|rx|
j|jn|
j|jx|
D]}y||\}}Wntk
rwYnX|rtj	j
|}||jkrd|}n||jkrd|}n||j
kr|}d|}y)|j|jg||g|gWqtk
r}zt|WYdd}~XqXqn||jkrtj	j|}tj	j|}y|j|jgd|d|g|gtj	jtj	j|\}}tj	j||d}|j|jgd|g|gWqtk
r}zt|WYdd}~XqXqntd||fd	|}y-|j|jg|
|||g|Wqtk
r}zt|WYdd}~XqXqW|
S)
Nz/cz/Tcz/Tpz/foz-hz-rz.rcz"Don't know how to compile %s to %sz/Fo)rrZ_setup_compiler!extendrrrrWrrd
_c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr\r)r<Zsourcesrr8Zinclude_dirsr_
extra_preargsextra_postargsZdependsZcompile_infoobjectsZpp_optsZbuildZcompile_optsobjsrcrZ	input_optZ
output_optmsgZh_dirZrc_dirrrZrc_filerrrcompilesj	






#$$#
#zMSVCCompiler.compilec	Cs|js|j|j||\}}|j|d|}|j||r|d|g}|riy|j|jg|Wqtk
r}zt|WYdd}~XqXnt	j
d|dS)Nrz/OUT:zskipping %s (up-to-date))rr_fix_object_argslibrary_filename
_need_linkrrirrr
r_)	r<rZoutput_libnamerr_target_langoutput_filenameZlib_argsrrrrcreate_static_libs	
	"zMSVCCompiler.create_static_libcCs|js|j|j||\}}|j|||}|\}}}|rl|jdt|t||||}|dk	rtjj	||}|j
||r|tjkr|	r|j
dd}q|jdd}n|	r|j
}n	|j}g}x%|p"gD]}|jd|q#W||||d|g}tjj|d}|dk	rtjjtjj|\}}tjj	||j|}|jd||j||||
r|
|dd<|r|j||jtjj|y|j|jg|Wn1tk
rs}zt|WYdd}~XnX|j||}|dk	r|\}}d||f}y |jdd	d
||gWqtk
r}zt|WYdd}~XqXntjd|dS)Nz5I don't know what to do with 'runtime_library_dirs': rz/EXPORT:z/OUT:rz/IMPLIB:z-outputresource:%s;%szmt.exez-nologoz	-manifestzskipping %s (up-to-date))rrrZ
_fix_lib_argswarnryr	rWrr\rr
EXECUTABLErrr!rrrrmanifest_setup_ldargsrZmkpathrrrrmanifest_get_embed_infor
r_)r<target_descrrrZ	librariesZlibrary_dirsZruntime_library_dirsZexport_symbolsr_rr
build_temprZ
fixed_argsZlib_optsZldflagsZexport_optsZsymld_argsZdll_nameZdll_extZimplib_filerZmfinfoZ
mffilenamemfidZout_argrrrlink8sl	
						
"zMSVCCompiler.linkcCs:tjj|tjj|d}|jd|dS)Nz	.manifestz/MANIFESTFILE:)rWrr\rr!)r<rrr
temp_manifestrrrrs	z"MSVCCompiler.manifest_setup_ldargscCsx8|D],}|jdr|jddd}PqWdS|tjkrSd}nd}|j|}|dkrxdS||fS)Nz/MANIFESTFILE::rr
)
startswithrRrr_remove_visual_c_ref)r<rrargrrrrrrs
	z$MSVCCompiler.manifest_get_embed_infocCsyt|}z|j}Wd|jXtjdtj}tj|d|}d}tj|d|}tjdtj}tj||dkrdSt|d}z|j||SWd|jXWnt	k
rYnXdS)NzU<assemblyIdentity.*?name=("|')Microsoft\.VC\d{2}\.CRT("|').*?(/>|</assemblyIdentity>)rz*<dependentAssembly>\s*</dependentAssembly>zI<assemblyIdentity.*?name=(?:"|')(.+?)(?:"|').*?(?:/>|</assemblyIdentity>)w)
openreadrwrerDOTALLrHsearchwriteOSError)r<Z
manifest_fileZ
manifest_fZmanifest_bufpatternrrrrs.	

z!MSVCCompiler._remove_visual_c_refcCsd|S)Nz	/LIBPATH:r)r<dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCstddS)Nz<don't know how to set runtime library search path for MSVC++)r)r<rrrrruntime_library_dir_optionsz'MSVCCompiler.runtime_library_dir_optioncCs
|j|S)N)r)r<rirrrlibrary_optionszMSVCCompiler.library_optioncCs|r|d|g}n	|g}xW|D]K}xB|D]:}tjj||j|}tjj|r6|Sq6Wq)WdSdS)NZ_d)rWrr\rexists)r<dirsrir_Z	try_namesrr*Zlibfilerrrfind_library_files	

zMSVCCompiler.find_library_filecCsxH|jD]=}tjjtjj||}tjj|r
|Sq
WxUtjdjdD]=}tjjtjj||}tjj|rb|SqbW|S)NZPathr)rrWrr\rdrerarR)r<ZexerCfnrrrrs	!!zMSVCCompiler.find_exe)r2r3r4Z
compiler_typeZexecutablesrrrrrrrZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ
exe_extensionr>rrrrrrrrrrrrrrrrrr,sP			
XVR+rl)0rWrprOrZdistutils.errorsrrrrrZdistutils.ccompilerrrr	Z	distutilsr
Zdistutils.utilrwinregZ	OpenKeyExrZEnumKeyr Z	EnumValuer'errorrZ
HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTrplatformmaxsizeZNATIVE_WIN64r9rBrArrr7rVrZr^rgrrrrrrr<module>sL(					>.#)	
Back to Directory File Manager