premake/Bootstrap.bat
2019-05-02 21:23:09 +02:00

105 lines
2.6 KiB
Batchfile

@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 IF "%vsversion%" == "vs2019" (
CALL :VsWhereVisualBootstrap "%vsversion%" "16.0" "17.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