From 3bd40639a3940c04d444198cc54e6efc021eb98c Mon Sep 17 00:00:00 2001 From: twi-devel Date: Fri, 21 Aug 2026 10:33:28 +0200 Subject: [PATCH] Merge remote branch + Submodule-Fix + Qt6.10.2 Dockerfile --- .gitmodules | 1 + ci/Dockerfile.ci | 39 +++++++++++++++++++++++------------ qt5-before/qt5-legatus-legacy | 2 +- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/.gitmodules b/.gitmodules index 47dc84c72..1b6c6b457 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ [submodule "qt5-before/qt5-legatus-legacy"] path = qt5-before/qt5-legatus-legacy url = git@devel:lifemaps/qt5-legatus-legacy.git + branch = story/qt6-migration diff --git a/ci/Dockerfile.ci b/ci/Dockerfile.ci index 0c971809c..933f55e90 100644 --- a/ci/Dockerfile.ci +++ b/ci/Dockerfile.ci @@ -1,10 +1,20 @@ FROM ubuntu:26.04 ENV DEBIAN_FRONTEND=noninteractive +ENV QT_VERSION=6.10.2 +ENV QT_ARCH=linux_gcc_64 +ENV QT_BASE_DIR=/opt/Qt +ENV QT_ROOT=/opt/Qt/6.10.2/gcc_64 +ENV Qt6_ROOT=/opt/Qt/6.10.2/gcc_64 +ENV CMAKE_PREFIX_PATH=/usr/local:/opt/Qt/6.10.2/gcc_64 +ENV PATH=/opt/Qt/6.10.2/gcc_64/bin:$PATH +ENV LD_LIBRARY_PATH=/opt/Qt/6.10.2/gcc_64/lib:${LD_LIBRARY_PATH:-} RUN apt-get update && \ apt-get install -y --no-install-recommends \ python3 \ + python3-pip \ + python3-venv \ clang-format \ cmake \ ninja-build \ @@ -14,17 +24,6 @@ RUN apt-get update && \ ca-certificates \ openssh-client \ pkg-config \ - qtbase5-dev \ - qt6-base-dev \ - qt6-base-dev-tools \ - qt6-tools-dev \ - qt6-tools-dev-tools \ - qt6-svg-dev \ - qt6-websockets-dev \ - qt6-serialport-dev \ - qt6-multimedia-dev \ - qt6-declarative-dev \ - libpoppler-qt6-dev \ libpq-dev \ libbz2-dev \ libboost-all-dev \ @@ -33,14 +32,22 @@ RUN apt-get update && \ libcurl4-openssl-dev && \ rm -rf /var/lib/apt/lists/* +# Install Qt 6.10.2 via aqtinstall +RUN python3 -m venv /opt/venv && \ + /opt/venv/bin/pip install --upgrade pip setuptools wheel && \ + /opt/venv/bin/pip install aqtinstall && \ + mkdir -p "${QT_BASE_DIR}" && \ + /opt/venv/bin/python -m aqt install-qt linux desktop "${QT_VERSION}" "${QT_ARCH}" -m qtmultimedia qtserialport qtimageformats qtwebsockets qtwebengine qtpdf qtwebview --outputdir "${QT_BASE_DIR}" && \ + test -f "${QT_ROOT}/lib/cmake/Qt6/Qt6Config.cmake" + # Install Log4Qt for Qt6 RUN git clone --depth 1 https://github.com/MEONMedical/Log4Qt.git /tmp/log4qt && \ cd /tmp/log4qt && \ mkdir -p build && cd build && \ cmake -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=20 \ + -DCMAKE_CXX_STANDARD=23 \ -DCMAKE_CXX_EXTENSIONS=OFF \ - -DCMAKE_PREFIX_PATH="/usr" \ + -DCMAKE_PREFIX_PATH="${QT_ROOT}" \ -DCMAKE_INSTALL_PREFIX="/usr/local" \ -DBUILD_SHARED_LIBS=ON .. && \ cmake --build . -- -j$(nproc) && \ @@ -62,6 +69,12 @@ set(Log4Qt_INCLUDE_DIRS "/usr/local/include" CACHE INTERNAL "Log4Qt include dir" set(Log4Qt_LIBRARIES "/usr/local/lib/liblog4qt.so" CACHE INTERNAL "Log4Qt library") EOF +# Set Qt platform for headless testing +# ArcGIS SDK configuration +ENV ARCGIS_ROOT=/repo/external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk +ENV ARCGIS_INC_DIR=${ARCGIS_ROOT}/include +ENV ARCGIS_LIB_DIR=${ARCGIS_ROOT}/linux/x64/lib + # Set Qt platform for headless testing ENV QT_QPA_PLATFORM=offscreen diff --git a/qt5-before/qt5-legatus-legacy b/qt5-before/qt5-legatus-legacy index d5f9b0c9c..2d936b44b 160000 --- a/qt5-before/qt5-legatus-legacy +++ b/qt5-before/qt5-legatus-legacy @@ -1 +1 @@ -Subproject commit d5f9b0c9cb5edeaf4d2950486d39dda4d60158f9 +Subproject commit 2d936b44b926ec6bcae732b2ae96b61c0afee6d8