96 lines
2.4 KiB
Batchfile
96 lines
2.4 KiB
Batchfile
ninja --version 1>NUL 2>&1
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo "Ninja not detected in the path"
|
|
exit /b 1
|
|
)
|
|
|
|
set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -G "Ninja" %TESTS_CMAKE_ARGS% -DCMAKE_BUILD_TYPE=%BUILD_TYPE%
|
|
|
|
if "%BUILD_WITH_SCCACHE%"=="1" (
|
|
set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -DWITH_WINDOWS_SCCACHE=On
|
|
if NOT "%verbose%" == "" (
|
|
echo Enabling sccache
|
|
)
|
|
)
|
|
|
|
if "%WITH_CLANG%" == "1" (
|
|
set LLVM_DIR=
|
|
for /F "usebackq skip=2 tokens=1-2*" %%A IN (`REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\LLVM\LLVM" /ve 2^>nul`) DO set LLVM_DIR=%%C
|
|
if DEFINED LLVM_DIR (
|
|
if NOT "%verbose%" == "" (
|
|
echo LLVM Detected at "%LLVM_DIR%"
|
|
)
|
|
goto DetectionComplete
|
|
)
|
|
|
|
REM Check 32 bits
|
|
for /F "usebackq skip=2 tokens=1-2*" %%A IN (`REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\LLVM\LLVM" /ve 2^>nul`) DO set LLVM_DIR=%%C
|
|
if DEFINED LLVM_DIR (
|
|
if NOT "%verbose%" == "" (
|
|
echo LLVM Detected at "%LLVM_DIR%"
|
|
)
|
|
goto DetectionComplete
|
|
)
|
|
echo LLVM not found
|
|
exit /b 1
|
|
|
|
:DetectionComplete
|
|
set CC=%LLVM_DIR%\bin\clang-cl
|
|
set CXX=%LLVM_DIR%\bin\clang-cl
|
|
if "%BUILD_VS_YEAR%" == "2019" (
|
|
rem build and tested against 2019 16.2
|
|
set CFLAGS=-m64 -fmsc-version=1922
|
|
set CXXFLAGS=-m64 -fmsc-version=1922
|
|
) else (
|
|
rem build and tested against 2017 15.7
|
|
set CFLAGS=-m64 -fmsc-version=1914
|
|
set CXXFLAGS=-m64 -fmsc-version=1914
|
|
)
|
|
if "%WITH_ASAN%"=="1" (
|
|
set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -DWITH_COMPILER_ASAN=On
|
|
)
|
|
)
|
|
|
|
if "%WITH_ASAN%"=="1" (
|
|
if "%WITH_CLANG%" == "" (
|
|
echo ASAN is only supported with clang.
|
|
exit /b 1
|
|
)
|
|
)
|
|
|
|
if NOT "%verbose%" == "" (
|
|
echo BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS%
|
|
)
|
|
|
|
if NOT EXIST %BUILD_DIR%\nul (
|
|
mkdir %BUILD_DIR%
|
|
)
|
|
|
|
if "%MUST_CLEAN%"=="1" (
|
|
echo Cleaning %BUILD_DIR%
|
|
cd %BUILD_DIR%
|
|
%CMAKE% cmake --build . --config Clean
|
|
)
|
|
|
|
if NOT EXIST %BUILD_DIR%\build.ninja set MUST_CONFIGURE=1
|
|
if "%NOBUILD%"=="1" set MUST_CONFIGURE=1
|
|
|
|
if "%MUST_CONFIGURE%"=="1" (
|
|
cmake ^
|
|
%BUILD_CMAKE_ARGS% ^
|
|
-H%BLENDER_DIR% ^
|
|
-B%BUILD_DIR%
|
|
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo "Configuration Failed"
|
|
exit /b 1
|
|
)
|
|
)
|
|
|
|
echo echo off > %BUILD_DIR%\rebuild.cmd
|
|
echo if "%%VSCMD_VER%%" == "" ^( >> %BUILD_DIR%\rebuild.cmd
|
|
echo call "%VCVARS%" %BUILD_ARCH% >> %BUILD_DIR%\rebuild.cmd
|
|
echo ^) >> %BUILD_DIR%\rebuild.cmd
|
|
echo echo %%TIME%% ^> buildtime.txt >> %BUILD_DIR%\rebuild.cmd
|
|
echo ninja install >> %BUILD_DIR%\rebuild.cmd
|
|
echo echo %%TIME%% ^>^> buildtime.txt >> %BUILD_DIR%\rebuild.cmd |