Welcome to mirror list, hosted at ThFree Co, Russian Federation.

configure_ninja.cmd « windows « build_files - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1650e43cda9ff4ac0405b91f0ecb1021fb4c0fe1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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 "%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