Yf\@sdZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZdZy@ddlZdZeZejZejZejZejZWnek r:yLddlZddlZdZeZejZejZejZejZWnek r5ejdYnXYnXer_ejejej ej!fZ"d d Z#d d Z$d dZ%GdddZ&ddZ'ddZ(ddZ)Gddde Z*e'dkrej+de*Z,ddl-m*Z*ddl-m&Z&dS)zdistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsyt||}Wntk r+dSYnXg}d}xDyt||}Wntk rcPYnX|j||d7}q;W|S)zReturn list of registry keys.Nr) RegOpenKeyExRegError RegEnumKeyappend)basekeyhandleLikr;/opt/alt/python35/lib64/python3.5/distutils/msvccompiler.py read_keys7s    rcCsyt||}Wntk r+dSYnXi}d}xbyt||\}}}Wntk rlPYnX|j}t||t|<|d7}q;W|S)zXReturn dict of registry keys and values. All names are converted to lowercase. Nrr )r r RegEnumValuelower convert_mbcs)rrrdrnamevaluetyperrr read_valuesHs    r c CsGt|dd}|dk rCy|d}Wntk rBYnX|S)Ndecodembcs)getattr UnicodeError)sZdecrrrr]s  rc@s@eZdZddZddZddZddZd S) MacroExpandercCsi|_|j|dS)N)macros load_macros)selfversionrrr__init__gs zMacroExpander.__init__cCs@x9tD]1}t||}|r|||jd|sZ(                   -