QGIS/.docker/docker-qgis-build.sh

117 lines
2.9 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"
if [[ -f "/usr/lib64/ccache/clang" ]]; then
export CC=/usr/lib64/ccache/clang
export CXX=/usr/lib64/ccache/clang++
else
export CC=/usr/lib/ccache/clang
export CXX=/usr/lib/ccache/clang++
fi
if [[ ${WITH_QT6} = "ON" ]]; then
CLANG_WARNINGS="-Wrange-loop-construct"
fi
CMAKE_EXTRA_ARGS=()
if [[ ${PATCH_QT_3D} == "true" ]]; then
CMAKE_EXTRA_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
cmake \
-GNinja \
-DUSE_CCACHE=OFF \
-DWITH_QT6=${WITH_QT6} \
-DWITH_DESKTOP=${WITH_QT5} \
-DWITH_ANALYSIS=ON \
-DWITH_GUI=${WITH_QT5} \
-DWITH_QUICK=${WITH_QUICK} \
-DWITH_3D=${WITH_3D} \
-DWITH_STAGED_PLUGINS=ON \
-DWITH_GRASS=OFF \
-DSUPPRESS_QT_WARNINGS=ON \
-DENABLE_TESTS=ON \
-DENABLE_MODELTEST=${WITH_QT5} \
-DENABLE_PGTEST=${WITH_QT5} \
-DENABLE_SAGA_TESTS=${WITH_QT5} \
-DENABLE_MSSQLTEST=${WITH_QT5} \
-DENABLE_HANATEST=${HANA_TESTS_ENABLED} \
-DENABLE_ORACLETEST=${WITH_QT5} \
-DPUSH_TO_CDASH=${PUSH_TO_CDASH} \
-DWITH_HANA=${WITH_QT5} \
-DWITH_QGIS_PROCESS=ON \
-DWITH_QSPATIALITE=${WITH_QT5} \
-DWITH_QWTPOLAR=OFF \
-DWITH_APIDOC=OFF \
-DWITH_ASTYLE=OFF \
-DWITH_BINDINGS=${WITH_QT5} \
-DWITH_SERVER=${WITH_QT5} \
-DWITH_SERVER_LANDINGPAGE_WEBAPP=${WITH_QT5} \
-DWITH_ORACLE=${WITH_QT5} \
-DWITH_PDAL=${WITH_QT5} \
-DWITH_QT5SERIALPORT=${WITH_QT5} \
-DWITH_QTWEBKIT=${WITH_QT5} \
-DWITH_OAUTH2_PLUGIN=${WITH_QT5} \
-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 \
${CMAKE_EXTRA_ARGS[*]} ..
echo "::endgroup::"
#######
# Build
#######
echo "${bold}Building QGIS...${endbold}"
echo "::group::build"
ctest -V -S /root/QGIS/.ci/config_build.ctest
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