
    :e                        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
ZdddZy)    )annotationsN   )mlog   )MesonException)
is_windowswindows_detect_native_archsetup_vsenvz"@ECHO OFF

call "{}"

ECHO {}
SET
c                l   t               syt        j                  j                  d      dk(  rydt        j                  vr)dt        j                  v ryt	        j
                  d      ry| sXt	        j
                  d      ryt	        j
                  d      ryt	        j
                  d	      ryt	        j
                  d
      ryt        j                  j                  d      xs t        j                  j                  d      }t        j                  |d      }|j                         st        d|       t        j                  t        |      ddddddddddddg      }t        j                  |      }|st        d      t        j                  |d   d         }t               dk(  r|dz  }|j                         s |dz  }n|d z  }|j                         s|d!z  }|j                         st        d|       t!        j"                  d"|d   d#   d$          d%}t$        j'                  ||      }t)        j*                  d&d'd(d)      }	|	j-                  |       |	j/                          |	j1                          t        j                  |	j2                  d*t5        j6                  d      +      }
t        j8                  |	j2                         |
j;                  d,      }d}|D ]9  }||k(  rd*}|s|s	 |j;                  d-d.      \  }}|t        j                  |<   ; y*# t<        $ r Y Hw xY w)/NFOSTYPEcygwinMESON_FORCE_VSENV_FOR_UNITTESTVSINSTALLDIRzcl.execcgccclangzclang-clzProgramFiles(x86)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   installationPath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catalog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tempfileNamedTemporaryFilewriteflushclosenamelocalegetpreferredencodingunlinksplit
ValueError)forcerootbat_locator_binbat_jsonbat_infobat_rootbat_pathbat_separatorbat_contentsbat_file
bat_output	bat_linesbat_separator_seenbat_linekvs                   8/usr/lib/python3/dist-packages/mesonbuild/utils/vsenv.py_setup_vsenvrL       s   <	zz~~h8+'rzz9 RZZ'<<!<<<<<< <<
#::>>-.P"**..2PDll4)XYO!!#.?@AA&& LD	
H zz(#HABB||HQK(:;<H!#w.BB "JJH?? "JJH??xj9::HH_hqk)45LMN!M&&x?L**3vX]^HNN< NNNN((4282M2Me2TVJIIhmm  &I }$!%!	>>#q)DAq
 BJJqM   		s   <L''	L32L3c                    	 t        |       S # t        $ r,}| r t        j                  dt	        |             Y d }~yd }~ww xY w)Nz"Failed to activate VS environment:F)rL   r   r   warningr+   )r;   es     rK   r
   r
   w   s>    E"" 93q6B	s   
 	A"=A)r;   boolreturnrP   )F)
__future__r   r!   r)   r   r&   r$   r0   r6    r   corer   	universalr   r	   __all__r.   rL   r
        rK   <module>rY      sE    " 	          = 
UnrX   