1@echo off
2rem Setup MCL and echo the environment
3rem Usage: eval `cmd.exe /c SetupWSLcross.bat x64`
4
5IF "%~1"=="x86" GOTO search
6IF "%~1"=="x64" GOTO search
7
8GOTO badarg
9
10:search
11IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat". (
12   call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" %~1 > nul
13   goto continue
14)
15
16IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat". (
17   call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" %~1 > nul
18   goto continue
19)
20
21IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat". (
22   call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" %~1 > nul
23   goto continue
24)
25
26IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat". (
27   call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" %~1 > nul
28   goto continue
29)
30
31IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat". (
32   call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" %~1 > nul
33   goto continue
34)
35
36IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat". (
37   call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %~1 > nul
38   goto continue
39)
40
41IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat". (
42   call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %~1 > nul
43   goto continue
44)
45
46GOTO no_vcvars
47
48:continue
49
50FOR /F "delims==" %%F IN ('where cl.exe') DO SET _cl_exec_=%%F
51FOR %%F IN ("%_cl_exec_%") DO SET CL_PATH=%%~dpF
52
53FOR /F "delims==" %%F IN ('where rc.exe') DO SET _rc_exec_=%%F
54FOR %%F IN ("%_rc_exec_%") DO SET RC_PATH=%%~dpF
55
56rem Order is important for some unknown reason
57set WSLENV=VCToolsRedistDir/up:CL_PATH/up:RC_PATH/up:LIBPATH/ul:LIB/ul:INCLUDE/ul
58wsl.exe echo INCLUDE=\"$INCLUDE\";
59wsl.exe echo LIB=\"$LIB\";
60wsl.exe echo LIBPATH=\"$LIBPATH\";
61wsl.exe echo VCToolsRedistDir=\"$VCToolsRedistDir\";
62wsl.exe echo PATH=\"$CL_PATH\":\"$RC_PATH\":'$PATH';
63wsl.exe echo WSLENV='$WSLENV:LIBPATH/l:LIB/l:INCLUDE/l';
64rem wsl.exe echo export 'INCLUDE LIB LIBPATH VCToolsRedistDir WSLENV PATH';
65wsl.exe echo "# Eval this file eval \`cmd.exe /c SetupWSLcross.bat\`"
66
67exit
68
69:badarg
70echo "Bad TARGET or not specified: %~1 expected x86 or x64"
71exit
72
73:no_vcvars
74echo "Error: SetupWSLcross.bat: Could not find vcvarsall.bat"
75echo "   edit erts/etc/win32/wsl_tools/SetupWSLcross.bat"
76exit
77