mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-12-01 23:40:04 +00:00
a715b1b405
This change improves spirv-fuzz CMake code to be more compatible with other projects that might want to include spirv-fuzz as a sub-project. * Add a CMake option for building spirv-fuzz. * We now check if protobuf targets are already available. * We no longer specify `-DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_USE_UNALIGNED=0`; a newer version of protobuf does not require this. Note that we probably should have specified this for protobuf targets as well, but this is no longer needed. * Updated protobuf version in Kokoro scripts and README.md.
109 lines
3.5 KiB
Batchfile
109 lines
3.5 KiB
Batchfile
:: Copyright (c) 2018 Google LLC.
|
|
::
|
|
:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
:: you may not use this file except in compliance with the License.
|
|
:: You may obtain a copy of the License at
|
|
::
|
|
:: http://www.apache.org/licenses/LICENSE-2.0
|
|
::
|
|
:: Unless required by applicable law or agreed to in writing, software
|
|
:: distributed under the License is distributed on an "AS IS" BASIS,
|
|
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
:: See the License for the specific language governing permissions and
|
|
:: limitations under the License.
|
|
::
|
|
:: Windows Build Script.
|
|
|
|
@echo on
|
|
|
|
set BUILD_ROOT=%cd%
|
|
set SRC=%cd%\github\SPIRV-Tools
|
|
set BUILD_TYPE=%1
|
|
set VS_VERSION=%2
|
|
|
|
:: Force usage of python 3.6
|
|
set PATH=C:\python36;%PATH%
|
|
|
|
cd %SRC%
|
|
git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
|
|
git clone --depth=1 https://github.com/google/googletest external/googletest
|
|
git clone --depth=1 https://github.com/google/effcee external/effcee
|
|
git clone --depth=1 https://github.com/google/re2 external/re2
|
|
git clone --depth=1 --branch v3.13.0 https://github.com/protocolbuffers/protobuf external/protobuf
|
|
|
|
:: #########################################
|
|
:: set up msvc build env
|
|
:: #########################################
|
|
if %VS_VERSION% == 2017 (
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
|
|
echo "Using VS 2017..."
|
|
) else if %VS_VERSION% == 2015 (
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
|
|
echo "Using VS 2015..."
|
|
) else if %VS_VERSION% == 2013 (
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64
|
|
echo "Using VS 2013..."
|
|
)
|
|
|
|
cd %SRC%
|
|
mkdir build
|
|
cd build
|
|
|
|
:: #########################################
|
|
:: Start building.
|
|
:: #########################################
|
|
echo "Starting build... %DATE% %TIME%"
|
|
if "%KOKORO_GITHUB_COMMIT%." == "." (
|
|
set BUILD_SHA=%KOKORO_GITHUB_PULL_REQUEST_COMMIT%
|
|
) else (
|
|
set BUILD_SHA=%KOKORO_GITHUB_COMMIT%
|
|
)
|
|
|
|
set 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
|
|
|
|
:: Skip building tests for VS2013
|
|
if %VS_VERSION% == 2013 (
|
|
set CMAKE_FLAGS=%CMAKE_FLAGS% -DSPIRV_SKIP_TESTS=ON
|
|
)
|
|
|
|
:: Skip building spirv-fuzz for VS2013; it relies on protobufs which VS2013 cannot handle.
|
|
if %VS_VERSION% NEQ 2013 (
|
|
set CMAKE_FLAGS=%CMAKE_FLAGS% -DSPIRV_BUILD_FUZZER=ON
|
|
)
|
|
|
|
cmake %CMAKE_FLAGS% ..
|
|
|
|
if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
|
|
|
|
echo "Build everything... %DATE% %TIME%"
|
|
ninja
|
|
if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
|
|
echo "Build Completed %DATE% %TIME%"
|
|
|
|
:: This lets us use !ERRORLEVEL! inside an IF ... () and get the actual error at that point.
|
|
setlocal ENABLEDELAYEDEXPANSION
|
|
|
|
:: ################################################
|
|
:: Run the tests (We no longer run tests on VS2013)
|
|
:: ################################################
|
|
echo "Running Tests... %DATE% %TIME%"
|
|
if %VS_VERSION% NEQ 2013 (
|
|
ctest -C %BUILD_TYPE% --output-on-failure --timeout 300
|
|
if !ERRORLEVEL! NEQ 0 exit /b !ERRORLEVEL!
|
|
)
|
|
echo "Tests Completed %DATE% %TIME%"
|
|
|
|
:: ################################################
|
|
:: Install and package.
|
|
:: ################################################
|
|
ninja install
|
|
cd %KOKORO_ARTIFACTS_DIR%
|
|
zip -r install.zip install
|
|
|
|
:: Clean up some directories.
|
|
rm -rf %SRC%\build
|
|
rm -rf %SRC%\external
|
|
|
|
exit /b 0
|
|
|