Improve Windows Bootstrap by automating Visual Studio environment setup
This commit is contained in:
parent
cdb6d3f3da
commit
b364a763ee
101
Bootstrap.bat
Normal file
101
Bootstrap.bat
Normal file
@ -0,0 +1,101 @@
|
||||
@ECHO OFF
|
||||
SETLOCAL
|
||||
SETLOCAL ENABLEDELAYEDEXPANSION
|
||||
|
||||
SET vsversion=%1
|
||||
IF "%vsversion%" == "" (
|
||||
SET vsversion=vs2015
|
||||
)
|
||||
|
||||
IF "%vsversion%" == "vs2010" (
|
||||
CALL :LegacyVisualBootstrap "%vsversion%" "100"
|
||||
|
||||
) ELSE IF "%vsversion%" == "vs2012" (
|
||||
CALL :LegacyVisualBootstrap "%vsversion%" "110"
|
||||
|
||||
) ELSE IF "%vsversion%" == "vs2013" (
|
||||
CALL :LegacyVisualBootstrap "%vsversion%" "120"
|
||||
|
||||
) ELSE IF "%vsversion%" == "vs2015" (
|
||||
CALL :LegacyVisualBootstrap "%vsversion%" "140"
|
||||
|
||||
) ELSE IF "%vsversion%" == "vs2017" (
|
||||
CALL :VsWhereVisualBootstrap "%vsversion%" "15.0" "16.0"
|
||||
|
||||
) ELSE (
|
||||
ECHO Unrecognized Visual Studio version %vsversion%
|
||||
EXIT /B 2
|
||||
)
|
||||
|
||||
REM On error, pause to allow user to notice it if script was launched through explorer
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
PAUSE
|
||||
)
|
||||
|
||||
EXIT /B %ERRORLEVEL%
|
||||
|
||||
REM ===========================================================================
|
||||
|
||||
REM Utils
|
||||
|
||||
REM ===========================================================================
|
||||
|
||||
REM %1: PremakeVsVersion -> ex: vs2015
|
||||
REM %2: VsVersion envvar -> ex: 140
|
||||
:LegacyVisualBootstrap
|
||||
|
||||
SET "VsVersion_NoPoint=%~2"
|
||||
SET "VsEnvVar=VS%VsVersion_NoPoint%COMNTOOLS"
|
||||
SET "VsPath=!%VsEnvVar%!"
|
||||
|
||||
IF NOT EXIST "%VsPath%vsdevcmd.bat" (
|
||||
ECHO Could not find vsdevcmd.bat to setup Visual Studio environment
|
||||
EXIT /B 2
|
||||
)
|
||||
|
||||
CALL "%VsPath%vsdevcmd.bat" && nmake MSDEV="%~1" -f Bootstrap.mak windows
|
||||
EXIT /B %ERRORLEVEL%
|
||||
|
||||
REM :LegacyVisualBootstrap
|
||||
|
||||
|
||||
REM ===========================================================================
|
||||
|
||||
REM %1: PremakeVsVersion -> ex: vs2010
|
||||
REM %2: VisualStudio-style VSversionMin -> ex: 15.0
|
||||
REM %3: VisualStudio-style VSversionMax -> ex: 16.0
|
||||
:VsWhereVisualBootstrap
|
||||
SET "PremakeVsVersion=%~1"
|
||||
SET "VsVersionMin=%~2"
|
||||
SET "VsVersionMax=%~3"
|
||||
|
||||
REM ref: https://github.com/Microsoft/vswhere/wiki/Start-Developer-Command-Prompt
|
||||
|
||||
SET VsWherePath="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe"
|
||||
|
||||
IF NOT EXIST %VsWherePath% (
|
||||
ECHO Could not find vswhere.exe
|
||||
EXIT /B 2
|
||||
)
|
||||
|
||||
SET VsWhereCmdLine="%VsWherePath% -nologo -latest -version [%VsVersionMin%,%VsVersionMax%) -property installationPath"
|
||||
|
||||
FOR /F "usebackq delims=" %%i in (`!VsWhereCmdLine!`) DO (
|
||||
|
||||
IF EXIST "%%i\VC\Auxiliary\Build\vcvars32.bat" (
|
||||
CALL "%%i\VC\Auxiliary\Build\vcvars32.bat" && nmake MSDEV="%PremakeVsVersion%" -f Bootstrap.mak windows
|
||||
EXIT /B %ERRORLEVEL%
|
||||
)
|
||||
)
|
||||
|
||||
ECHO Could not find vcvars32.bat to setup Visual Studio environment
|
||||
EXIT /B 2
|
||||
|
||||
REM :VsWhereVisualBootstrap
|
||||
|
||||
REM ===========================================================================
|
||||
|
||||
REM SETLOCAL ENABLEDELAYEDEXPANSION
|
||||
ENDLOCAL
|
||||
REM SETLOCAL
|
||||
ENDLOCAL
|
Loading…
Reference in New Issue
Block a user