]O @ s$ d d l Z d d l Z d d l Z d d l Z d d l m Z m Z m Z m Z m Z d d l m Z m Z d d l m Z d d l m Z d d l Z d d l m Z d d Z d d Z d d d Z d d d d i Z d d d d d d i Z e d g Z Gd d d e Z d S) N)DistutilsExecErrorDistutilsPlatformErrorCompileErrorLibError LinkError) CCompilergen_lib_options)log)get_platform)countc $ C s y) t j t j d d t j t j B} Wn# t k rN t j d d SYn X| d } d } x t D] } y t j | | \ } } } Wn t k r PYn X| rl | t j k rl t j j | rl y t t | } Wn t t f k rwl Yn X| d k rl | | k rl | | } } ql W| sBt j d d St j j | d } t j j | s}t j d | d Sd } t j | } | rt j j | | j | } t j j | st j d | d } | | f SWd QRXd S)Nz'Software\Microsoft\VisualStudio\SxS\VC7accesszVisual C++ is not registeredr z$No suitable Visual C++ version foundz vcvarsall.batz%s cannot be found)NN)NN)NN)winregZ OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr debugr Z EnumValueZREG_SZospathisdirintfloat ValueError TypeErrorjoinisfile _VCVARS_PLAT_TO_VCRUNTIME_REDISTgetformat) plat_speckeyZbest_versionZbest_dirivZvc_dirZvtversion vcvarsall vcruntimeZvcruntime_spec r% 2/opt/alt/python35/lib64/python3.5/_msvccompiler.py_find_vcvarsall sN ' r' c C s t j d r) d d t j j D St | \ } } | sM t d y7 t j d j | | d t j j d d d } WnP t j k r } z- t j | j t d j | j WYd d } ~ Xn Xd d d d | j D D } | r | | d <| S)NZDISTUTILS_USE_SDKc S s% i | ] \ } } | | j q Sr% )lower).0r valuer% r% r&