• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1:: Copyright (c) 2018 Google LLC.
2::
3:: Licensed under the Apache License, Version 2.0 (the "License");
4:: you may not use this file except in compliance with the License.
5:: You may obtain a copy of the License at
6::
7::     http://www.apache.org/licenses/LICENSE-2.0
8::
9:: Unless required by applicable law or agreed to in writing, software
10:: distributed under the License is distributed on an "AS IS" BASIS,
11:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12:: See the License for the specific language governing permissions and
13:: limitations under the License.
14::
15:: Windows Build Script.
16
17@echo on
18
19set BUILD_ROOT=%cd%
20set SRC=%cd%\github\SPIRV-Tools
21set BUILD_TYPE=%1
22set VS_VERSION=%2
23
24:: Force usage of python 3.12, cmake 3.31.2
25set PATH=C:\python312;c:\cmake-3.31.2\bin;%PATH%
26
27:: #########################################
28:: set up msvc build env
29:: #########################################
30if %VS_VERSION% == 2019 (
31  call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
32  echo "Using VS 2019..."
33) else if %VS_VERSION% == 2022 (
34  call "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" x64
35  echo "Using VS 2022..."
36)
37
38cd %SRC%
39python utils/git-sync-deps --treeless
40
41mkdir build
42cd build
43
44:: #########################################
45:: Start building.
46:: #########################################
47echo "Starting build... %DATE% %TIME%"
48if "%KOKORO_GITHUB_COMMIT%." == "." (
49  set BUILD_SHA=%KOKORO_GITHUB_PULL_REQUEST_COMMIT%
50) else (
51  set BUILD_SHA=%KOKORO_GITHUB_COMMIT%
52)
53
54set CMAKE_FLAGS=-DCMAKE_INSTALL_PREFIX=%KOKORO_ARTIFACTS_DIR%\install -GNinja -DCMAKE_BUILD_TYPE=%BUILD_TYPE% -DRE2_BUILD_TESTING=OFF -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe
55
56:: Build spirv-fuzz
57set CMAKE_FLAGS=%CMAKE_FLAGS% -DSPIRV_BUILD_FUZZER=ON
58
59if "%BUILD_TESTS%" == "NO" (
60  set CMAKE_FLAGS=-DSPIRV_SKIP_TESTS=ON %CMAKE_FLAGS%
61)
62
63cmake --version
64cmake %CMAKE_FLAGS% ..
65
66if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
67
68echo "Build everything... %DATE% %TIME%"
69ninja
70if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
71echo "Build Completed %DATE% %TIME%"
72
73:: This lets us use !ERRORLEVEL! inside an IF ... () and get the actual error at that point.
74setlocal ENABLEDELAYEDEXPANSION
75
76:: ################################################
77:: Run the tests
78:: ################################################
79if "%BUILD_TESTS%" NEQ "NO" (
80  echo "Running Tests... %DATE% %TIME%"
81  ctest -C %BUILD_TYPE% --output-on-failure --timeout 300
82  if !ERRORLEVEL! NEQ 0 exit /b !ERRORLEVEL!
83  echo "Tests Completed %DATE% %TIME%"
84)
85
86:: ################################################
87:: Install and package.
88:: ################################################
89ninja install
90cd %KOKORO_ARTIFACTS_DIR%
91zip -r install.zip install
92
93:: Clean up some directories.
94rm -rf %SRC%\build
95rm -rf %SRC%\external
96
97exit /b 0
98