1*1b3f573fSAndroid Build Coastguard Worker#!/bin/bash -eux 2*1b3f573fSAndroid Build Coastguard Worker# 3*1b3f573fSAndroid Build Coastguard Worker# Build file to set up and run tests 4*1b3f573fSAndroid Build Coastguard Worker 5*1b3f573fSAndroid Build Coastguard Workerset -o pipefail 6*1b3f573fSAndroid Build Coastguard Worker 7*1b3f573fSAndroid Build Coastguard Workerif [[ -h /tmpfs ]] && [[ ${PWD} == /tmpfs/src ]]; then 8*1b3f573fSAndroid Build Coastguard Worker # Workaround for internal Kokoro bug: b/227401944 9*1b3f573fSAndroid Build Coastguard Worker cd /Volumes/BuildData/tmpfs/src 10*1b3f573fSAndroid Build Coastguard Workerfi 11*1b3f573fSAndroid Build Coastguard Worker 12*1b3f573fSAndroid Build Coastguard Worker# These vars can be changed when running manually, e.g.: 13*1b3f573fSAndroid Build Coastguard Worker# 14*1b3f573fSAndroid Build Coastguard Worker# % BUILD_CONFIG=RelWithDebInfo path/to/build.sh 15*1b3f573fSAndroid Build Coastguard Worker 16*1b3f573fSAndroid Build Coastguard Worker# By default, build using Debug config. 17*1b3f573fSAndroid Build Coastguard Worker: ${BUILD_CONFIG:=Debug} 18*1b3f573fSAndroid Build Coastguard Worker 19*1b3f573fSAndroid Build Coastguard Worker# By default, find the sources based on this script path. 20*1b3f573fSAndroid Build Coastguard Worker: ${SOURCE_DIR:=$(cd $(dirname $0)/../../..; pwd)} 21*1b3f573fSAndroid Build Coastguard Worker 22*1b3f573fSAndroid Build Coastguard Worker# By default, put outputs under <git root>/cmake/build. 23*1b3f573fSAndroid Build Coastguard Worker: ${BUILD_DIR:=${SOURCE_DIR}/cmake/build} 24*1b3f573fSAndroid Build Coastguard Worker 25*1b3f573fSAndroid Build Coastguard Workersource ${SOURCE_DIR}/kokoro/caplog.sh 26*1b3f573fSAndroid Build Coastguard Worker 27*1b3f573fSAndroid Build Coastguard Worker# 28*1b3f573fSAndroid Build Coastguard Worker# Update submodules 29*1b3f573fSAndroid Build Coastguard Worker# 30*1b3f573fSAndroid Build Coastguard Workergit -C "${SOURCE_DIR}" submodule update --init --recursive 31*1b3f573fSAndroid Build Coastguard Worker 32*1b3f573fSAndroid Build Coastguard Worker# 33*1b3f573fSAndroid Build Coastguard Worker# Configure and build in a separate directory 34*1b3f573fSAndroid Build Coastguard Worker# 35*1b3f573fSAndroid Build Coastguard Workermkdir -p "${BUILD_DIR}" 36*1b3f573fSAndroid Build Coastguard Worker 37*1b3f573fSAndroid Build Coastguard Workercaplog 01_configure \ 38*1b3f573fSAndroid Build Coastguard Worker cmake -S "${SOURCE_DIR}" -B "${BUILD_DIR}" ${CAPLOG_CMAKE_ARGS:-} 39*1b3f573fSAndroid Build Coastguard Worker 40*1b3f573fSAndroid Build Coastguard Workerif [[ -n ${CAPLOG_DIR:-} ]]; then 41*1b3f573fSAndroid Build Coastguard Worker mkdir -p "${CAPLOG_DIR}/CMakeFiles" 42*1b3f573fSAndroid Build Coastguard Worker cp "${BUILD_DIR}"/CMakeFiles/CMake*.log "${CAPLOG_DIR}/CMakeFiles" 43*1b3f573fSAndroid Build Coastguard Workerfi 44*1b3f573fSAndroid Build Coastguard Worker 45*1b3f573fSAndroid Build Coastguard Workercaplog 02_build \ 46*1b3f573fSAndroid Build Coastguard Worker cmake --build "${BUILD_DIR}" --config "${BUILD_CONFIG}" 47*1b3f573fSAndroid Build Coastguard Worker 48*1b3f573fSAndroid Build Coastguard Worker# 49*1b3f573fSAndroid Build Coastguard Worker# Run tests 50*1b3f573fSAndroid Build Coastguard Worker# 51*1b3f573fSAndroid Build Coastguard Worker( 52*1b3f573fSAndroid Build Coastguard Worker cd "${BUILD_DIR}" 53*1b3f573fSAndroid Build Coastguard Worker caplog 03_combined_testlog \ 54*1b3f573fSAndroid Build Coastguard Worker ctest -C "${BUILD_CONFIG}" -j4 ${CAPLOG_CTEST_ARGS:-} 55*1b3f573fSAndroid Build Coastguard Worker) 56