ž «ÿf@wc@sõdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z mZddlmZddlmZddlZejZejZejZejZejejejejfZ ej!dkoej"d'kZ#e#r!d Z$d Z%d Z&nd Z$dZ%dZ&idd6dd6dd6Z'Gdd„dƒZ(Gdd„dƒZ)dd„Z*dd„Z+dd„Z,dd „Z-dd!d"„Z.e*ƒZ/e/d#krÛed$e/ƒ‚nGd%d&„d&e ƒZ0dS((u distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. iN(uDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkError(u CCompilerugen_preprocess_optionsugen_lib_options(ulog(u get_platformuwin32ii u1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fu5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsu,Software\Wow6432Node\Microsoft\.NETFrameworku%Software\Microsoft\VisualStudio\%0.1fu)Software\Microsoft\Microsoft SDKs\Windowsu Software\Microsoft\.NETFrameworkux86uamd64u win-amd64uia64uwin-ia64cBsz|EeZdZdZdd„ZeeƒZdd„ZeeƒZdd„ZeeƒZdd „Ze eƒZd S( uRegu2Helper class to read values from the registry cCsMx:tD]2}|j||ƒ}|r||kr||SqWt|ƒ‚dS(N(uHKEYSu read_valuesuKeyError(uclsupathukeyubaseud((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu get_valueAs   u Reg.get_valuecCs‚yt||ƒ}Wntk r+dSYnXg}d}xCyt||ƒ}Wntk rcPYnX|j|ƒ|d7}q;|S(uReturn list of registry keys.iiN(u RegOpenKeyExuRegErroruNoneu RegEnumKeyuappend(uclsubaseukeyuhandleuLuiuk((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu read_keysIs     u Reg.read_keysc Cs¦yt||ƒ}Wntk r+dSYnXi}d}xgyt||ƒ\}}}Wntk rlPYnX|jƒ}|j|ƒ||j|ƒ<|d7}q;|S(u`Return dict of registry keys and values. All names are converted to lowercase. iiN(u RegOpenKeyExuRegErroruNoneu RegEnumValueuloweru convert_mbcs( uclsubaseukeyuhandleuduiunameuvalueutype((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu read_values[s     uReg.read_valuesc CsJt|ddƒ}|dk rFy|dƒ}WqFtk rBYqFXn|S(Nudecodeumbcs(ugetattruNoneu UnicodeError(usudec((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu convert_mbcsqs  uReg.convert_mbcsN( u__name__u __module__u __qualname__u__doc__u get_valueu classmethodu read_keysu read_valuesu convert_mbcsu staticmethod(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyuReg=s       uRegcBsD|EeZdZdd„Zdd„Zdd„Zdd„Zd S( u MacroExpandercCs'i|_t||_|j|ƒdS(N(umacrosuVS_BASEuvsbaseu load_macros(uselfuversion((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu__init__}s  uMacroExpander.__init__cCs!tj||ƒ|jd||)uu*\s*uI|)uw( uopenureaducloseureucompileuDOTALLusubusearchuNoneuwriteuIOError(uselfu manifest_fileu manifest_fu manifest_bufupattern((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu_remove_visual_c_ref¸s.      u!MSVCCompiler._remove_visual_c_refcCsd|S(Nu /LIBPATH:((uselfudir((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyulibrary_dir_optionãsuMSVCCompiler.library_dir_optioncCstdƒ‚dS(Nu<don't know how to set runtime library search path for MSVC++(uDistutilsPlatformError(uselfudir((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyuruntime_library_dir_optionæsu'MSVCCompiler.runtime_library_dir_optioncCs |j|ƒS(N(ulibrary_filename(uselfulib((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyulibrary_optionêsuMSVCCompiler.library_optioncCs€|r|d|g}n |g}xW|D]K}xB|D]:}tjj||j|ƒƒ}tjj|ƒr6|Sq6Wq)WdSdS(Nu_d(uosupathujoinulibrary_filenameuexistsuNone(uselfudirsulibudebugu try_namesudirunameulibfile((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyufind_library_fileîs    uMSVCCompiler.find_library_filecCs§xH|jD]=}tjjtjj|ƒ|ƒ}tjj|ƒr |Sq WxUtjdjdƒD]=}tjjtjj|ƒ|ƒ}tjj|ƒrb|SqbW|S(uŒReturn 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'. uPathu;(u_MSVCCompiler__pathsuosupathujoinuabspathuisfileuenvironusplit(uselfuexeupufn((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyufind_exes !!uMSVCCompiler.find_exeN(!u__name__u __module__u __qualname__u__doc__u compiler_typeu executablesu _c_extensionsu_cpp_extensionsu_rc_extensionsu_mc_extensionsusrc_extensionsu res_extensionu obj_extensionustatic_lib_extensionushared_lib_extensionustatic_lib_formatushared_lib_formatu exe_extensionu__init__uNoneu initializeuobject_filenamesucompileucreate_static_libulinkumanifest_setup_ldargsumanifest_get_embed_infou_remove_visual_c_refulibrary_dir_optionuruntime_library_dir_optionulibrary_optionufind_library_fileufind_exe(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu MSVCCompiler)sR     X VR  +   u MSVCCompilerl(1u__doc__uosu subprocessusysureudistutils.errorsuDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkErrorudistutils.ccompileru CCompilerugen_preprocess_optionsugen_lib_optionsu distutilsulogudistutils.utilu get_platformuwinregu OpenKeyExu RegOpenKeyExuEnumKeyu RegEnumKeyu EnumValueu RegEnumValueuerroruRegErroru HKEY_USERSuHKEY_CURRENT_USERuHKEY_LOCAL_MACHINEuHKEY_CLASSES_ROOTuHKEYSuplatformumaxsizeu NATIVE_WIN64uVS_BASEu WINSDK_BASEuNET_BASEuPLAT_TO_VCVARSuRegu MacroExpanderuget_build_versionunormalize_and_reduce_pathsuremoveDuplicatesufind_vcvarsalluquery_vcvarsalluVERSIONu MSVCCompiler(((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyusP    (        >.   #)