#!/usr/bin/env bash set -euo pipefail # build_log4qt.sh - build and install Log4Qt into /usr/local # Designed to be run inside the Docker build or by a runner that has Qt installed at $QT_ROOT QT_ROOT=${QT_ROOT:-/opt/Qt/6.8.3/gcc_64} INSTALL_PREFIX=${INSTALL_PREFIX:-/usr/local} echo "Building Log4Qt (QT_ROOT=${QT_ROOT})..." TMPDIR=$(mktemp -d) trap 'rm -rf "$TMPDIR"' EXIT cd "$TMPDIR" if ! git clone --depth 1 https://github.com/MEONMedical/Log4Qt.git ./log4qt; then echo "Warning: failed to clone Log4Qt from github. Exiting build." >&2 exit 0 fi mkdir -p log4qt/build cd log4qt/build cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=20 \ -DCMAKE_CXX_EXTENSIONS=OFF \ -DCMAKE_PREFIX_PATH="${QT_ROOT}" \ -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" .. cmake --build . -- -j$(nproc) || true cmake --install . || true # Create minimal CMake config so find_package(Log4Qt) will work mkdir -p "${INSTALL_PREFIX}/lib/cmake/Log4Qt" libpath=$((ls "${INSTALL_PREFIX}/lib/libLog4Qt.so"* 2>/dev/null || ls "${INSTALL_PREFIX}/lib/liblog4qt.so"* 2>/dev/null) | head -n1 || true) if [ -n "$libpath" ]; then cat > "${INSTALL_PREFIX}/lib/cmake/Log4Qt/Log4QtConfig.cmake" <