
    8xd7                         d dl Z d dlZd dlmZmZmZmZ d dlZ	 d dlm	Z	m
Z
 d dlmZ n#  Y nxY wd dlmZ d dlmZmZmZmZmZ d dlmZmZ dd	d
ddddZd Zd ZddZd ZddZdS )    N)dirnameisdirisfilejoin)WINSDK_BASEReg)find_vcvarsall)environ)check_call_env	copy_into
get_loggerpath_prependedwrite_bat_activation_text)get_default_variantset_language_env_varszVisual Studio 8 2005zVisual Studio 9 2008zVisual Studio 10 2010zVisual Studio 11 2012zVisual Studio 12 2013zVisual Studio 14 2015)z8.09.010.0z11.0z12.014.0c           
      \   t          |           sdS t          j        |           D ]}t          t	          | |                    rd|v r%t          t	          | |          d          5 }|                                }|                    d          rd|                                v s	 ddd           t          d|z             t          t	          | |dz             d          5 }|
                    |                                           ddd           n# 1 swxY w Y   t          t	          t          t                    d	|j        z            t	          | |d
z                        ddd           n# 1 swxY w Y   t          j        t	          | |                     dS )zV
    Fixes scripts which have been installed unix-style to have a .bat
    helper
    N.rbs   #!s   pythonz@Adjusting unix-style #! script %s, and adding a .bat file for itz
-script.pywbz
cli-%s.exez.exe)r   oslistdirr   r   openreadline
startswithlowerprintwritereadr   r   __file__	host_archremove)scripts_dirconfigfnflinefos         3lib/python3.11/site-packages/conda_build/windows.pyfix_staged_scriptsr,   )   s7   
  j%% ) )d;++,, 	r		 ${B''.. 	!::<<DOOE** yDJJLL/H/H		 	 	 	 	 	 	
 0245  
 d;\(9::DAA #R"""# # # # # # # # # # # # # # # WX&&v7G(GHH["v+..  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	& 		${B''((((3) )s>   )AE=63E=)(DE=D!!E=$D!%AE==F	F	c                    dt           j        v rt           j        d         }nt           j        d         }t          |                               dd          }d| d}|t           j        v r0t           j                            t           j        |         d          S t           j                            |d|  d	d
          S )z
    Given the Visual Studio version, returns the default path to the
    Microsoft Visual Studio vcvarsall.bat file.
    Expected versions are of the form {9.0, 10.0, 12.0, 14.0}
    zProgramFiles(x86)ProgramFilesr    VS	COMNTOOLSz..\..\VC\vcvarsall.batzMicrosoft Visual Studio VCzvcvarsall.bat)r   r
   strreplacepathr   )versionPROGRAM_FILES_PATHflatversionvstoolss       r+   build_vcvarsall_vs_pathr:   L   s     bj((Z(;<Z7g,,&&sB//K);)))G"*w||BJw/1LMMM w||0w00	
 
 	
    c           	      	   t          t                    }|                    d           |r|                    d           t          |           } | dk    rdnd}g }d }||}|                    d           |                    d           |sz|j                            dt          |          d                   }t          |d	                   d
k    r1t          |	                    d          d                   dk     rd}d}nd}t          |          dk    r<|                    d                    |                    dd                               t          |          }|fd}	|	                    d          d	         }
|                    d| d           |                    d|
 d           |                    dt          |         dd           d           t          |
          dk    r%|                    dt          |          d           n?|                    d                    t          |         ddd|          z                        |                    d           |                    d            |dk    r	 t          j        t"          j                            t(          d!          d"          }t"          j                            |d#d$          }| dk    rd%nd&} |	||'          }|                    d(           |                    |           |                    d)                    | |	|                               nQ# t*          $ r" |                     |	|                     Y n&w xY w|dk    r	 t"          j                            t"          j                            t/          d*                    d+d,          }n# t*          t0          f$ r d }Y nw xY wd-}|                     |	|                     |dk    r3|r1|                    |                     |	|                               |                    |                     |	t/          d*                                         n|                     |	|                     d.                    |          d.z   S )/NzUsing legacy MSVC compiler setup.  This will be removed in conda-build 4.0. If this recipe does not use a compiler, this message is safe to ignore.  Otherwise, use {{compiler('<language>')}} jinja2 in requirements/build.zmsvc_compiler key in meta.yaml is deprecated. Use the newvariant-powered compiler configuration instead. Note that msvc_compileris incompatible with the new {{{{compiler('c')}}}} jinja scheme.32x86amd64zset DISTUTILS_USE_SDK=1zset MSSdk=1pythonr      r         r   r   r   g      ,@z5set PY_VCRUNTIME_REDIST=%LIBRARY_BIN%\vcruntime{}.dllr/   c                     d|  d| S )Nzcall "z"  )cmdarchs     r+   build_vcvarsall_cmdz)msvc_env_cmd.<locals>.build_vcvarsall_cmd   s    %%%t%%%r;   zset "VS_VERSION="zset "VS_MAJOR=zset "VS_YEAR=   zset "CMAKE_GENERATOR=zset "CMAKE_GENERATOR={}"z Win64)64r=   z+set "MSYS2_ARG_CONV_EXCL=/AI;/AL;/OUT;/out"zset "MSYS2_ENV_CONV_EXCL=CL"zv7.1installationfolderBinz
SetEnv.cmdz/Release /x86z/Release /x64)rG   zSetlocal EnableDelayedExpansionz'if not "%WindowsSDKDir%" == "{}" ( {} )	   binzvcvars64.batzIF %ERRORLEVEL% NEQ 0 {}
)r   __name__warnr3   appendvariantgetr   intsplitfloatformatr4   r:   VS_VERSION_STRINGr   	get_valuer   r5   r   r   KeyErrorr   distutils_find_vcvarsall	TypeError)bitsr&   overridelogarch_selectormsvc_env_linesr6   py_vervcvarsall_vs_pathrH   vs_majorWIN_SDK_71_PATHWIN_SDK_71_BAT_PATHwin_sdk_archwin_sdk_cmdVCVARS64_VS9_BAT_PATHerror1s                    r+   msvc_env_cmdrn   g   se    X

CHH	R  
  
O	
 	
 	
 t99D!T\\EEwMNG 3444 -((( ##H.A&.I.I(.STTvay>>Q6<<$$Q'((1,, GGGW~~ 	DKKR(( 	
 	
 	
 088&3 & & & & }}S!!!$H7W77788868666777L*;G*DRSS*ILLLMMM
8}}S6G6PSSSTTTT&--!'*HB-G-G-MM 	
 	
 	
 GHHH8999&	J!m[&113G O #%',,|"T"T.2dll??L--.AUUUK !!"CDDD!!+... !!9@@#%8%89J%K%K      	J 	J 	J!!"5"56G"H"HIIIII	J	E			)$&GLL 8 ; ;<<e^% %!! )$ 	) 	) 	)$(!!!	) , 	112CDDEEE
 G##(=#!!112GHHII  
 	MM--.Fq.I.IJJKK	
 	
 	
 	

 	112CDDEEE99^$$t++s&   CM (NNAO O21O2c                    t          | j        j        d          }| j        dk    rd|d<   dd l} |                    d          t          |d                    5 }|                    d           |                                D ])\  }}|d	k    r||                    d
| d| d           *| j	        sH|                    t          | j        j        | j        |                     dd                                |                    d           |                    d                    |d                              |                    d                    |d                              | j        j        r(|                                 dk    rt!          ||            d d d            n# 1 swxY w Y   t          | j        j        d          }t"          j                            |          rt          |          5 }	|	                                }
d d d            n# 1 swxY w Y    |                    d          t          |d                    5 }|                    d           |                    d| d           |                    d           |                    d           |                    |
           d d d            n# 1 swxY w Y   ||fS )Nzbuild_env_setup.batr@   TPYTHONDONTWRITEBYTECODEr   zutf-8r   z	@echo on
r/   zset "=z"
zbuild/msvc_compiler)r`   r&   ra   zset "INCLUDE={};%INCLUDE%"
LIBRARY_INCzset "LIB={};%LIB%"
LIBRARY_LIBcondazconda_build.batzIF "%CONDA_BUILD%" == "" (
z	    call rQ   z)
z%REM ===== end generated header =====
)r   r&   work_dirnoarchcodecs	getwriterr   r    items"uses_new_style_compiler_activationrn   r#   r\   rZ   activatenamer   r   r5   r   r!   )menvbld_bat
env_scriptrw   r*   keyvaluework_scriptfidatas              r+   write_build_scriptsr      sv   ah')>??Jx8)-%&MMM	"		'	"	"4
D#9#9	:	: -b
))++ 	3 	3JC{{u0111u1112223 	HH+8[[)>EE     	
/66s=7IJJKKK
'..s=/ABBCCC8 	-W!4!4%b!,,,'- - - - - - - - - - - - - - -* qx(*;<<K	w~~g ']] 	b7799D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	&Vg&&tK'>'>?? 	2HH3444HH////000HHUOOOHH=>>>HHTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
""s8   EF//F36F3H##H'*H'A.KKKFc                   
 t          | j        j                  5  t          | j        j                  5  t	          j        |           
d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d
d<   d
d<   d
d<   d
d<   | j        j        
d	<   d
d
<   
                    t          | j        j	                             dD ]0}
d|z            }t          |          st          j        |           1t          | 
|          \  }}|st          j                            |          rdddt          j                            |          g}| j        j        s| j        j        rd }	n2
fddD             }	t'          dt)          j        |	          z             t-          || j        j        ||	           t1          t3          | j        j        d          | j                   d S d S d S )N)r}   BUILDCONDA_BUILD_STATEFalsePIP_NO_BUILD_ISOLATIONTPIP_NO_DEPENDENCIESPIP_IGNORE_INSTALLEDPIP_CACHE_DIRPIP_NO_INDEX)BININCLIBLIBRARY_zcmd.exez/dz/cc                 *    i | ]}|v ||         S rE   rE   ).0kr~   s     r+   
<dictcomp>zbuild.<locals>.<dictcomp>Q  s,       AQTHH3q6HHHr;   )PREFIXBUILD_PREFIXSRC_DIRzRewriting env in output: %s)cwdstatsrewrite_stdout_envScripts)r&   )r   r&   host_prefixbuild_prefixr
   get_dictpip_cache_dirupdater   rU   r   r   makedirsr   r5   r   basenamedebugno_rewrite_stdout_envr   pprintpformatr   ru   r,   r   )r}   r   r   provision_onlyr|   r5   r   r   rF   rewrite_envr~   s             @r+   buildr   !  s    
,	-	- ( (AH122 	( 	("Q'''C	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(( ( ( ( ( ( ( ( ( ( ( ( ( ( (  'C %,C ! "&C"&C 81C C JJ$QX%566777#  :$%T{{ 	K1!S'BBK Sbgnn[99 S$bg&6&6{&C&CD8> 	OQX; 	OKK   #H  K /&.2M2MMNNNQX&e	
 	
 	
 	
 	4 4i@@RRRRRRS S S Ss4   A.AA.A	A.A	A..A25A2)N)F)r   r   os.pathr   r   r   r   
setuptools#setuptools._distutils.msvc9compilerr   r   r	   r^   conda_buildr
   conda_build.utilsr   r   r   r   r   conda_build.variantsr   r   r[   r,   r:   rn   r   r   rE   r;   r+   <module>r      s   
			  0 0 0 0 0 0 0 0 0 0 0 0    	DDDDDDDD      	D                    L K K K K K K K "!####   )  )  )F
 
 
6O, O, O, O,d%# %# %#P7S 7S 7S 7S 7S 7Ss   ) -