• 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.6
25set PATH=C:\python36;"C:\Program Files\cmake-3.23.1-windows-x86_64\bin";%PATH%
26
27cd %SRC%
28git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
29git clone https://github.com/google/googletest          external/googletest
30cd external && cd googletest && git reset --hard 1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7 && cd .. && cd ..
31git clone --depth=1 https://github.com/google/effcee              external/effcee
32git clone --depth=1 https://github.com/google/re2                 external/re2
33git clone --depth=1 --branch v3.13.0.1 https://github.com/protocolbuffers/protobuf external/protobuf
34
35:: #########################################
36:: set up msvc build env
37:: #########################################
38if %VS_VERSION% == 2017 (
39  call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
40  echo "Using VS 2017..."
41) else if %VS_VERSION% == 2015 (
42  call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
43  echo "Using VS 2015..."
44)
45
46cd %SRC%
47mkdir build
48cd build
49
50:: #########################################
51:: Start building.
52:: #########################################
53echo "Starting build... %DATE% %TIME%"
54if "%KOKORO_GITHUB_COMMIT%." == "." (
55  set BUILD_SHA=%KOKORO_GITHUB_PULL_REQUEST_COMMIT%
56) else (
57  set BUILD_SHA=%KOKORO_GITHUB_COMMIT%
58)
59
60set 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
61
62:: Build spirv-fuzz
63set CMAKE_FLAGS=%CMAKE_FLAGS% -DSPIRV_BUILD_FUZZER=ON
64
65cmake %CMAKE_FLAGS% ..
66
67if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
68
69echo "Build everything... %DATE% %TIME%"
70ninja
71if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
72echo "Build Completed %DATE% %TIME%"
73
74:: This lets us use !ERRORLEVEL! inside an IF ... () and get the actual error at that point.
75setlocal ENABLEDELAYEDEXPANSION
76
77:: ################################################
78:: Run the tests
79:: ################################################
80echo "Running Tests... %DATE% %TIME%"
81ctest -C %BUILD_TYPE% --output-on-failure --timeout 300
82if !ERRORLEVEL! NEQ 0 exit /b !ERRORLEVEL!
83echo "Tests Completed %DATE% %TIME%"
84
85:: ################################################
86:: Install and package.
87:: ################################################
88ninja install
89cd %KOKORO_ARTIFACTS_DIR%
90zip -r install.zip install
91
92:: Clean up some directories.
93rm -rf %SRC%\build
94rm -rf %SRC%\external
95
96exit /b 0
97