diff --git a/app/build_log4qt.sh b/app/build_log4qt.sh new file mode 100755 index 000000000..72f694096 --- /dev/null +++ b/app/build_log4qt.sh @@ -0,0 +1,53 @@ +#!/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" <