o
    uJAf                     @  s   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZddl	m
Z
 ddlmZ ddlmZmZ dgZd	ZdddZddddZdS )    )annotationsN   )mlog   )MesonException)
is_windowswindows_detect_native_archsetup_vsenvz"@ECHO OFF

call "{}"

ECHO {}
SET
forceboolreturnc                 C  s@  t  sdS tjddkrdS dtjvr"dtjv rdS tdr"dS | s@tdr+dS tdr2dS td	r9dS td
r@dS tjdpKtjd}t|d}| s]t	d| t
t|ddddddddddddg}t|}|s|t	dt|d d }t dkr|d }| s|d }n|d  }| s|d! }| st	d| td"|d d# d$  d%}t||}tjd&d'd(dd)}	|	| |	  |	  t
j|	jd*tdd+}
t|	j |
d,}d}|D ]*}||krd*}q|sq|sqz
|d-d.\}}W n
 ty   Y qw |tj|< qd*S )/NFZOSTYPEcygwinZMESON_FORCE_VSENV_FOR_UNITTESTZVSINSTALLDIRzcl.exeZccZgccZclangzclang-clzProgramFiles(x86)ZProgramFilesz-Microsoft Visual Studio/Installer/vswhere.exezCould not find z-latestz-prereleasez-requiresAnyz	-requiresz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z)Microsoft.VisualStudio.Workload.WDExpressz	-products*z-utf8z-formatjsonz"Could not parse vswhere.exe outputr   ZinstallationPathZarm64z"VC/Auxiliary/Build/vcvarsarm64.batz&VC/Auxiliary/Build/vcvarsx86_arm64.batzVC/Auxiliary/Build/vcvars64.batz&VC/Auxiliary/Build/vcvarsx86_amd64.batzActivating VScatalogZproductDisplayVersionz---SPLIT---wz.batzutf-8)suffixencodingdeleteT)universal_newlinesr   
=r   )r   osenvirongetshutilwhichpathlibPathexistsr   
subprocesscheck_outputstrr   loadsr   r   logbat_templateformattempfileZNamedTemporaryFilewriteflushclosenamelocalegetpreferredencodingunlinksplit
ValueError)r
   rootZbat_locator_binZbat_jsonZbat_infoZbat_rootZbat_pathZbat_separatorZbat_contentsZbat_fileZ
bat_outputZ	bat_linesZbat_separator_seenZbat_linekv r4   ;/usr/lib/python3.10/site-packages/mesonbuild/utils/vsenv.py_setup_vsenv    s   











r6   Fc              
   C  sH   zt | W S  ty# } z| r tdt| W Y d }~dS d }~ww )Nz"Failed to activate VS environment:F)r6   r   r   warningr"   )r
   er4   r4   r5   r	   w   s   
)r
   r   r   r   )F)
__future__r   r   r    r   r   r   r'   r,    r   corer   	universalr   r   __all__r%   r6   r	   r4   r4   r4   r5   <module>   s     
W