forked from LunarG/VulkanSamples
-
Notifications
You must be signed in to change notification settings - Fork 8
/
build_windows_targets.bat
138 lines (131 loc) · 4.43 KB
/
build_windows_targets.bat
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
echo off
REM
REM This Windows batch file builds this repository for the following targets:
REM 64/32-bit Release/Debug
REM It uses CMake to genererate the project files and then invokes msbuild
REM to build them.
REM The update_external_sources.bat batch file must be executed before running
REM this batch file
REM
REM Arguments:
REM None: Runs CMake and builds all 4 combinations
REM Argument contains:
REM cmake (case insensitive): Deletes build and build32 and runs just CMake on both
REM 32: Deletes build32, runs CMake and builds 32-bit versions
REM 64: Deletes build, runs CMake and builds 64-bit versions
REM Example:
REM build_windows_targets.bat 64
REM deletes build, creates build, runs CMake and compiles 64-bit Debug and Release.
set do_cmake=1
set do_32=1
set do_64=1
if "%1"=="" goto no_args
set do_cmake=0
set do_32=0
set do_64=0
for %%a in (%*) do (
echo.%%a | %WINDIR%\system32\find.exe /I "cmake">Nul && (set do_cmake=1)
echo.%%a | %WINDIR%\system32\find.exe "32">Nul && (set do_32=1)
echo.%%a | %WINDIR%\system32\find.exe "64">Nul && (set do_64=1)
)
:no_args
if %do_cmake%==0 (
if %do_32%==0 (
if %do_64%==0 (
echo No valid parameters specified.
exit /b 1
)
)
)
REM Determine the appropriate CMake strings for the current version of Visual Studio
echo Determining VS version
python .\scripts\determine_vs_version.py > vsversion.tmp
set /p VS_VERSION=< vsversion.tmp
echo Detected Visual Studio Version as %VS_VERSION%
del /Q /F vsversion.tmp
if %do_cmake%==1 (
if %do_64%==1 (
rmdir /Q /S build
mkdir build
pushd build
echo Generating 64-bit CMake files for Visual Studio %VS_VERSION%
cmake -G "Visual Studio %VS_VERSION% Win64" ..
popd
)
if %do_32%==1 (
rmdir /Q /S build32
mkdir build32
pushd build32
echo Generating 32-bit CMake files for Visual Studio %VS_VERSION%
cmake -G "Visual Studio %VS_VERSION%" ..
popd
)
)
REM *******************************************
REM 64-bit build
REM *******************************************
if %do_64%==1 (
pushd build
echo Generating 64-bit CMake files for Visual Studio %VS_VERSION%
cmake -G "Visual Studio %VS_VERSION% Win64" ..
echo Building 64-bit Debug
pushd layers
msbuild generate_vk_layer_helpers.vcxproj /p:Platform=x64 /p:Configuration=Debug /verbosity:quiet
msbuild VkLayer_utils.vcxproj /p:Platform=x64 /p:Configuration=Debug /verbosity:quiet
popd
msbuild ALL_BUILD.vcxproj /p:Platform=x64 /p:Configuration=Debug /maxcpucount /verbosity:quiet
if errorlevel 1 (
echo.
echo 64-bit Debug build failed!
popd
exit /b 1
)
echo Building 64-bit Release
REM msbuild doesn't seem to see the dependency between the Overlay sample and layer_utils
pushd layers
msbuild generate_vk_layer_helpers.vcxproj /p:Platform=x64 /p:Configuration=Release /verbosity:quiet
msbuild VkLayer_utils.vcxproj /p:Platform=x64 /p:Configuration=Release /verbosity:quiet
popd
if errorlevel 1 (
echo.
echo 64-bit Release build failed!
popd
exit /b 1
)
popd
)
REM *******************************************
REM 32-bit build
REM *******************************************
if %do_32%==1 (
pushd build32
echo Generating 32-bit CMake files for Visual Studio %VS_VERSION%
cmake -G "Visual Studio %VS_VERSION%" ..
echo Building 32-bit Debug
pushd layers
msbuild generate_vk_layer_helpers.vcxproj /p:Platform=x86 /p:Configuration=Debug /verbosity:quiet
msbuild VkLayer_utils.vcxproj /p:Platform=x86 /p:Configuration=Debug /verbosity:quiet
popd
msbuild ALL_BUILD.vcxproj /p:Platform=x86 /p:Configuration=Debug /maxcpucount /verbosity:quiet
if errorlevel 1 (
echo.
echo 32-bit Debug build failed!
popd
exit /b 1
)
echo Building 32-bit Release
REM msbuild doesn't seem to see the dependency between the Overlay sample and layer_utils
pushd layers
msbuild generate_vk_layer_helpers.vcxproj /p:Platform=x86 /p:Configuration=Release /verbosity:quiet
msbuild VkLayer_utils.vcxproj /p:Platform=x86 /p:Configuration=Release /verbosity:quiet
popd
msbuild ALL_BUILD.vcxproj /p:Platform=x86 /p:Configuration=Release /verbosity:quiet
if errorlevel 1 (
echo.
echo 32-bit Release build failed!
popd
exit /b 1
)
popd
)
exit /b 0