Merge commit '36bca61764984ff5395653cf8377ec5daa71b709' as 'libs/protobuf'
This commit is contained in:
84
libs/protobuf/kokoro/common/cmake.sh
Executable file
84
libs/protobuf/kokoro/common/cmake.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Build tests under CMake.
|
||||
#
|
||||
# This script is used from macos and linux builds. It runs cmake and ctest in
|
||||
# the current directory. Any additional setup should be done before running this
|
||||
# script.
|
||||
#
|
||||
# This script uses `caplog` to save logfiles. See caplog.sh for details.
|
||||
|
||||
set -eu -o pipefail
|
||||
: ${SCRIPT_ROOT:=$(cd $(dirname $0)/../..; pwd)}
|
||||
|
||||
################################################################################
|
||||
# If you are using this script to run tests, you can set some environment
|
||||
# variables to control behavior:
|
||||
#
|
||||
# By default, find the sources based on this script's path.
|
||||
: ${SOURCE_DIR:=${SCRIPT_ROOT}}
|
||||
#
|
||||
# By default, put outputs under <git root>/cmake/build.
|
||||
: ${BUILD_DIR:=${SOURCE_DIR}/cmake/build}
|
||||
#
|
||||
# CMAKE_BUILD_TYPE is supported in cmake 3.22+. If set, we pass the value of this
|
||||
# variable explicitly for compatibility with older versions of cmake. See:
|
||||
# https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
|
||||
# (N.B.: not to be confused with CMAKE_CONFIG_TYPE.)
|
||||
if [[ -n ${CMAKE_BUILD_TYPE:-} ]]; then
|
||||
CMAKE_BUILD_TYPE_FLAG="-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
|
||||
else
|
||||
CMAKE_BUILD_TYPE_FLAG=
|
||||
fi
|
||||
#
|
||||
# For several other CMake options, see docs here:
|
||||
# https://cmake.org/cmake/help/latest/manual/cmake-env-variables.7.html
|
||||
#
|
||||
# Some variables you may want to override (see cmake docs for details):
|
||||
# CMAKE_BUILD_PARALLEL_LEVEL
|
||||
# CMAKE_CONFIG_TYPE (N.B.: not to be confused with CMAKE_BUILD_TYPE)
|
||||
# CMAKE_GENERATOR
|
||||
# CTEST_PARALLEL_LEVEL
|
||||
################################################################################
|
||||
|
||||
echo "Building using..."
|
||||
echo " Sources: ${SOURCE_DIR}"
|
||||
echo " Build output: ${BUILD_DIR}"
|
||||
if [[ ${SOURCE_DIR} != ${SCRIPT_ROOT} ]]; then
|
||||
echo " Build scripts: ${SCRIPT_ROOT}"
|
||||
fi
|
||||
set -x
|
||||
source ${SCRIPT_ROOT}/kokoro/common/caplog.sh
|
||||
|
||||
#
|
||||
# Configure under $BUILD_DIR:
|
||||
#
|
||||
mkdir -p "${BUILD_DIR}"
|
||||
|
||||
(
|
||||
cd "${BUILD_DIR}"
|
||||
caplog 01_configure \
|
||||
cmake -S "${SOURCE_DIR}" \
|
||||
${CMAKE_BUILD_TYPE_FLAG} \
|
||||
${CAPLOG_CMAKE_ARGS:-}
|
||||
)
|
||||
if [[ -n ${CAPLOG_DIR:-} ]]; then
|
||||
# Save configuration logs.
|
||||
mkdir -p "${CAPLOG_DIR}/CMakeFiles"
|
||||
cp "${BUILD_DIR}"/CMakeFiles/CMake*.log "${CAPLOG_DIR}/CMakeFiles"
|
||||
fi
|
||||
|
||||
#
|
||||
# Build:
|
||||
#
|
||||
caplog 02_build \
|
||||
cmake --build "${BUILD_DIR}"
|
||||
|
||||
#
|
||||
# Run tests
|
||||
#
|
||||
(
|
||||
cd "${BUILD_DIR}"
|
||||
caplog 03_combined_testlog \
|
||||
ctest ${CAPLOG_CTEST_ARGS:-}
|
||||
)
|
||||
Reference in New Issue
Block a user