QGIS/.docker/docker-qgis-build.sh
2021-02-11 06:11:23 +10:00

102 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
##############
# Setup ccache
##############
export CCACHE_TEMPDIR=/tmp
# Github workflow cache max size is 2.0, but ccache data get compressed (roughly 1/5?)
ccache -M 2.0G
# Temporarily uncomment to debug ccache issues
# export CCACHE_LOGFILE=/tmp/cache.debug
ccache -z
##############################
# Variables for output styling
##############################
bold=$(tput bold)
endbold=$(tput sgr0)
###########
# Configure
###########
pushd /root/QGIS > /dev/null
mkdir -p build
pushd build > /dev/null
echo "${bold}Running cmake...${endbold}"
echo "::group::cmake"
export CC=/usr/lib/ccache/clang
export CXX=/usr/lib/ccache/clang++
CMAKE_ARGS=(
"-GNinja"
"-DUSE_CCACHE=OFF"
"-DWITH_QUICK=OFF"
"-DWITH_3D=ON"
"-DWITH_STAGED_PLUGINS=ON"
"-DWITH_GRASS=OFF"
"-DSUPPRESS_QT_WARNINGS=ON"
"-DENABLE_TESTS=ON"
"-DENABLE_MODELTEST=ON"
"-DENABLE_PGTEST=ON"
"-DENABLE_SAGA_TESTS=ON"
"-DENABLE_MSSQLTEST=ON"
"-DENABLE_HANATEST=${HANA_TESTS_ENABLED}"
"-DENABLE_ORACLETEST=ON"
"-DPUSH_TO_CDASH=${PUSH_TO_CDASH}"
"-DWITH_HANA=ON"
"-DWITH_QSPATIALITE=ON"
"-DWITH_QWTPOLAR=OFF"
"-DWITH_APIDOC=OFF"
"-DWITH_ASTYLE=OFF"
"-DWITH_DESKTOP=ON"
"-DWITH_BINDINGS=ON"
"-DWITH_SERVER=ON"
"-DWITH_ORACLE=ON"
"-DWITH_PDAL=ON"
"-DORACLE_INCLUDEDIR=/instantclient_19_9/sdk/include/"
"-DORACLE_LIBDIR=/instantclient_19_9/"
"-DDISABLE_DEPRECATED=ON"
"-DPYTHON_TEST_WRAPPER=\"timeout -sSIGSEGV 55s\""
"-DCXX_EXTRA_FLAGS=\"${CLANG_WARNINGS}\""
"-DWERROR=TRUE"
"-DADD_CLAZY_CHECKS=ON"
)
if [[ ${PATCH_QT_3D} == "true" ]]; then
CMAKE_ARGS+=(
"-DQT5_3DEXTRA_LIBRARY=/usr/lib/x86_64-linux-gnu/libQt53DExtras.so"
"-DQT5_3DEXTRA_INCLUDE_DIR=/root/QGIS/external/qt3dextra-headers"
"-DCMAKE_PREFIX_PATH=/root/QGIS/external/qt3dextra-headers/cmake"
"-DQt53DExtras_DIR=/root/QGIS/external/qt3dextra-headers/cmake/Qt53DExtras"
)
fi
echo "Running cmake ${CMAKE_ARGS[*]} .."
cmake ${CMAKE_ARGS[*]} ..
echo "::endgroup::"
#######
# Build
#######
echo "${bold}Building QGIS...${endbold}"
echo "::group::build"
${CTEST_BUILD_COMMAND}
echo "::endgroup::"
########################
# Show ccache statistics
########################
echo "ccache statistics"
ccache -s
popd > /dev/null # build
popd > /dev/null # /root/QGIS
[ -r /tmp/ctest-important.log ] && cat /tmp/ctest-important.log || true