mirror of
https://github.com/jedisct1/libsodium.git
synced 2026-08-27 20:27:12 +09:00
124 lines
4.5 KiB
Batchfile
124 lines
4.5 KiB
Batchfile
@ECHO OFF
|
|
REM Usage: [buildbase.bat ..\vs2026\mysolution.sln 18]
|
|
|
|
SETLOCAL enabledelayedexpansion
|
|
|
|
SET solution=%1
|
|
SET version=%2
|
|
SET log=build_%version%.log
|
|
SET environment=
|
|
SET vswhere="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
|
|
IF NOT EXIST !vswhere! SET vswhere="%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"
|
|
SET /A next_version=version + 1
|
|
SET version_range=[%version%.0,!next_version!.0)
|
|
SET required_components=Microsoft.VisualStudio.Component.VC.Tools.x86.x64
|
|
IF %version% GEQ 17 SET required_components=!required_components! Microsoft.VisualStudio.Component.VC.Tools.ARM64
|
|
|
|
IF %version% GEQ 15 (
|
|
IF EXIST !vswhere! (
|
|
FOR /F "usebackq tokens=*" %%I IN (`!vswhere! -latest -prerelease -products * -version !version_range! -requires !required_components! -property installationPath`) DO (
|
|
SET environment="%%I\VC\Auxiliary\Build\vcvarsall.bat"
|
|
)
|
|
)
|
|
) ELSE (
|
|
SET tools=Microsoft Visual Studio %version%.0\VC\vcvarsall.bat
|
|
SET environment="%ProgramFiles%\!tools!"
|
|
IF NOT EXIST !environment! SET environment="%ProgramFiles(x86)%\!tools!"
|
|
)
|
|
|
|
IF NOT DEFINED environment GOTO no_tools
|
|
IF NOT EXIST !environment! GOTO no_tools
|
|
|
|
ECHO Environment: !environment!
|
|
ECHO Building: %solution%
|
|
|
|
CALL !environment! x86 > nul 2>&1
|
|
ECHO Platform=x86
|
|
|
|
ECHO Configuration=DynDebug
|
|
msbuild /m /v:n /p:Configuration=DynDebug /p:Platform=Win32 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=DynRelease
|
|
msbuild /m /v:n /p:Configuration=DynRelease /p:Platform=Win32 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=LtcgDebug
|
|
msbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=Win32 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=LtcgRelease
|
|
msbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=Win32 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=StaticDebug
|
|
msbuild /m /v:n /p:Configuration=StaticDebug /p:Platform=Win32 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=StaticRelease
|
|
msbuild /m /v:n /p:Configuration=StaticRelease /p:Platform=Win32 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
|
|
ENDLOCAL & SET solution=%solution% & SET version=%version% & SET log=%log% & SET environment=%environment%
|
|
SETLOCAL enabledelayedexpansion
|
|
|
|
CALL !environment! x86_amd64 > nul 2>&1
|
|
ECHO Platform=x64
|
|
|
|
ECHO Configuration=DynDebug
|
|
msbuild /m /v:n /p:Configuration=DynDebug /p:Platform=x64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=DynRelease
|
|
msbuild /m /v:n /p:Configuration=DynRelease /p:Platform=x64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=LtcgDebug
|
|
msbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=x64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=LtcgRelease
|
|
msbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=x64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=StaticDebug
|
|
msbuild /m /v:n /p:Configuration=StaticDebug /p:Platform=x64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=StaticRelease
|
|
msbuild /m /v:n /p:Configuration=StaticRelease /p:Platform=x64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
|
|
@REM Build ARM64 packages only for Visual Studio 2022 and later
|
|
IF %version% GEQ 17 (
|
|
ENDLOCAL & SET solution=%solution% & SET version=%version% & SET log=%log% & SET environment=%environment%
|
|
SETLOCAL enabledelayedexpansion
|
|
|
|
CALL !environment! amd64_arm64 > nul 2>&1
|
|
ECHO Platform=ARM64
|
|
|
|
ECHO Configuration=DynDebug
|
|
msbuild /m /v:n /p:Configuration=DynDebug /p:Platform=ARM64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=DynRelease
|
|
msbuild /m /v:n /p:Configuration=DynRelease /p:Platform=ARM64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=LtcgDebug
|
|
msbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=ARM64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=LtcgRelease
|
|
msbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=ARM64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=StaticDebug
|
|
msbuild /m /v:n /p:Configuration=StaticDebug /p:Platform=ARM64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
ECHO Configuration=StaticRelease
|
|
msbuild /m /v:n /p:Configuration=StaticRelease /p:Platform=ARM64 %solution% >> %log%
|
|
IF errorlevel 1 GOTO error
|
|
)
|
|
|
|
ECHO Complete: %solution%
|
|
EXIT /B 0
|
|
|
|
:error
|
|
ECHO *** ERROR, build terminated early, see: %log%
|
|
ECHO.
|
|
ECHO === Last errors from %log% ===
|
|
findstr /i /c:"error " /c:"error:" /c:"fatal error" %log%
|
|
ECHO.
|
|
EXIT /B 1
|
|
|
|
:no_tools
|
|
ECHO *** ERROR, Visual Studio %version% C++ build tools not found
|
|
EXIT /B 1
|