o
0i'N @ s d dl Z d dlZd dlZd dlmZmZmZmZmZ d dl m
Z
mZ d dlm
Z
d dlmZ d dlmZ dd Zd d
Zddd
ddZdd Zdd ZdddZdddddZG dd de
ZdS ) N)DistutilsExecErrorDistutilsPlatformErrorCompileErrorLibError LinkError) CCompilergen_lib_options)log)get_platform)countc C s zt jt jdt jt jB d} W n ty td Y dS w d}d }| _ t D ]F}zt | |\}}}W n
ty@ Y n:w |ro|t j
krotj
|roztt|}W n ttfya Y q)w |dkro||kro||}}q)W d ||fS W d ||fS 1 sw Y ||fS )Nz'Software\Microsoft\VisualStudio\SxS\VC7)accesszVisual C++ is not registeredNNr )winregZ OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr debugr Z EnumValueZREG_SZospathisdirintfloat
ValueError TypeError)keybest_versionbest_dirivZvc_dirZvtversion r >/opt/alt/python310/lib64/python3.10/distutils/_msvccompiler.py_find_vc2015 sH
r" c
C s t jdpt jd} | sdS ztjt j| dddddd d
ddd
dg ddd }W n tjt t
fy; Y dS w t j|ddd}t j|rOd|fS dS )NzProgramFiles(x86)ZProgramFilesr
zMicrosoft Visual StudioZ Installerzvswhere.exez-latestz-prereleasez -requiresz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z -propertyZinstallationPathz -products*mbcsstrict)encodingerrorsZVCZ AuxiliaryZBuild )r environget
subprocesscheck_outputr joinstripCalledProcessErrorr UnicodeDecodeErrorr )rootr r r r! _find_vc20178 s0 r2 x86Zx64ZarmZarm64)r3 x86_amd64x86_arm x86_arm64c C s\ t \}}|st \}}|std dS tj|d}tj|s*td| dS |d fS )Nz$No suitable Visual C++ version foundr
z
vcvarsall.batz%s cannot be found)r2 r" r r r r r- isfile) plat_spec_r r vcvarsallr r r! _find_vcvarsall_ s
r; c
C s t drdd t j D S t| \}}|stdztjd|| tj dj
ddd }W n tjyI } zt
|j td
|jd }~ww dd dd
| D D }|S )NZDISTUTILS_USE_SDKc S s i | ] \}}| |qS r lower).0r valuer r r!