119 lines
3.1 KiB
Bash
Executable File
119 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright 2022 The SwiftShader Authors. All Rights Reserved.
|
|
#
|
|
# 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.
|
|
|
|
set -e # Fail on any error.
|
|
|
|
function show_cmds { set -x; }
|
|
function hide_cmds { { set +x; } 2>/dev/null; }
|
|
function task_begin {
|
|
TASK_NAME="$@"
|
|
SECONDS=0
|
|
}
|
|
function print_last_task_duration {
|
|
if [ ! -z "${TASK_NAME}" ]; then
|
|
echo "${TASK_NAME} completed in $(($SECONDS / 3600))h$((($SECONDS / 60) % 60))m$(($SECONDS % 60))s"
|
|
fi
|
|
}
|
|
function status {
|
|
echo ""
|
|
echo ""
|
|
print_last_task_duration
|
|
echo ""
|
|
echo "*****************************************************************"
|
|
echo "* $@"
|
|
echo "*****************************************************************"
|
|
echo ""
|
|
task_begin $@
|
|
}
|
|
|
|
CLONE_SRC_DIR="$(pwd)"
|
|
|
|
. /bin/using.sh # Declare the bash `using` function for configuring toolchains.
|
|
|
|
using cmake-3.17.2
|
|
using gcc-9
|
|
|
|
status "Cloning to clean source directory at '${SRC_DIR}'"
|
|
|
|
mkdir -p ${SRC_DIR}
|
|
cd ${SRC_DIR}
|
|
git clone ${CLONE_SRC_DIR} .
|
|
|
|
mkdir -p build && cd build
|
|
|
|
if [[ -z "${REACTOR_BACKEND}" ]]; then
|
|
REACTOR_BACKEND="LLVM"
|
|
fi
|
|
|
|
# Lower the amount of debug info, to reduce Kokoro build times.
|
|
SWIFTSHADER_LESS_DEBUG_INFO=1
|
|
|
|
status "Generating CMake build files"
|
|
cmake .. \
|
|
"-DCMAKE_BUILD_TYPE=${BUILD_TYPE}" \
|
|
"-DREACTOR_BACKEND=${REACTOR_BACKEND}" \
|
|
"-DSWIFTSHADER_LLVM_VERSION=${LLVM_VERSION}" \
|
|
"-DREACTOR_VERIFY_LLVM_IR=1" \
|
|
"-DSWIFTSHADER_LESS_DEBUG_INFO=${SWIFTSHADER_LESS_DEBUG_INFO}" \
|
|
"-DSWIFTSHADER_BUILD_BENCHMARKS=1"
|
|
|
|
status "Building"
|
|
cmake --build . -- -j $(nproc)
|
|
|
|
status "Running unit tests"
|
|
|
|
cd .. # Some tests must be run from project root
|
|
|
|
build/ReactorUnitTests
|
|
build/system-unittests
|
|
build/vk-unittests
|
|
|
|
status "Building and running rr::Print unit tests"
|
|
|
|
cd build
|
|
cmake .. "-DREACTOR_ENABLE_PRINT=1"
|
|
cmake --build . --target ReactorUnitTests -- -j $(nproc)
|
|
cmake .. "-DREACTOR_ENABLE_PRINT=0"
|
|
cd ..
|
|
build/ReactorUnitTests --gtest_filter=ReactorUnitTests.Print*
|
|
|
|
status "Building and testing with REACTOR_EMIT_ASM_FILE"
|
|
|
|
cd build
|
|
cmake .. "-DREACTOR_EMIT_ASM_FILE=1"
|
|
cmake --build . --target ReactorUnitTests -- -j $(nproc)
|
|
cmake .. "-DREACTOR_EMIT_ASM_FILE=0"
|
|
cd ..
|
|
build/ReactorUnitTests --gtest_filter=ReactorUnitTests.EmitAsm
|
|
|
|
#status "Building with REACTOR_EMIT_DEBUG_INFO"
|
|
#
|
|
#cd build
|
|
#cmake .. "-DREACTOR_EMIT_DEBUG_INFO=1"
|
|
#cmake --build . --target ReactorUnitTests -- -j $(nproc)
|
|
#cmake .. "-DREACTOR_EMIT_DEBUG_INFO=0"
|
|
#cd ..
|
|
|
|
#status "Building with REACTOR_EMIT_PRINT_LOCATION"
|
|
#
|
|
#cd build
|
|
#cmake .. "-DREACTOR_EMIT_PRINT_LOCATION=1"
|
|
#cmake --build . --target ReactorUnitTests -- -j $(nproc)
|
|
#cmake .. "-DREACTOR_EMIT_PRINT_LOCATION=0"
|
|
#cd ..
|
|
|
|
status "Done"
|