Rework mach.bat to support VS2019 and user-supplied environments.

As a bonus, use setlocal to avoid environment pollution.
This commit is contained in:
TheGoddessInari 2019-03-26 11:05:06 -07:00 committed by Josh Matthews
parent e1eb36050e
commit 903729159e

View file

@ -1,5 +1,11 @@
@echo off
setlocal
if EXIST "%VCINSTALLDIR%" (
GOTO mach
)
pushd .
IF EXIST "%ProgramFiles(x86)%" (
@ -8,37 +14,52 @@ IF EXIST "%ProgramFiles(x86)%" (
set "ProgramFiles32=%ProgramFiles%"
)
set VC14VARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat
IF EXIST "%VC14VARS%" (
set "VS_VCVARS=%VC14VARS%"
) ELSE (
for %%v in (2019 2017) do (
for %%e in (Enterprise Professional Community BuildTools) do (
IF EXIST "%ProgramFiles32%\Microsoft Visual Studio\2017\%%e\VC\Auxiliary\Build\vcvarsall.bat" (
set "VS_VCVARS=%ProgramFiles32%\Microsoft Visual Studio\2017\%%e\VC\Auxiliary\Build\vcvarsall.bat"
IF EXIST "%ProgramFiles32%\Microsoft Visual Studio\%%v\%%e\VC\Auxiliary\Build\vcvarsall.bat" (
set "VS_VCVARS=%ProgramFiles32%\Microsoft Visual Studio\%%v\%%e\VC\Auxiliary\Build\vcvarsall.bat"
GOTO vcvars
)
)
)
set VC14VARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat
IF EXIST "%VC14VARS%" (
set "VS_VCVARS=%VC14VARS%"
)
:vcvars
IF EXIST "%VS_VCVARS%" (
IF NOT DEFINED Platform (
IF EXIST "%ProgramFiles(x86)%" (
call "%VS_VCVARS%" x64
) ELSE (
ECHO 32-bit Windows is currently unsupported.
EXIT /B 1
GOTO bad_exit
)
)
) ELSE (
ECHO Visual Studio 2015 or 2017 is not installed.
ECHO Download and install Visual Studio 2015 or 2017 from https://www.visualstudio.com/
EXIT /B 1
ECHO Visual Studio 2015, 2017, or 2019 is not installed.
ECHO Download and install Visual Studio from https://www.visualstudio.com/
GOTO bad_exit
)
popd
:mach
where /Q py.exe
IF %ERRORLEVEL% NEQ 0 (
python mach %*
) ELSE (
py -2 mach %*
)
GOTO exit
:bad_exit
endlocal
EXIT /B 1
:exit
endlocal
exit /B