From fd3e5e83805abbbfc91a2b8ef119facd64426c29 Mon Sep 17 00:00:00 2001 From: twi-devel Date: Wed, 23 Sep 2026 13:36:37 +0200 Subject: [PATCH 1/3] Add --build-viewer-only option to skip Groups 1-4 and build Viewer targets only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add --build-viewer-only command-line option to argument parsing - Add BUILD_VIEWER_ONLY environment variable handling - Add conditional build logic to skip Groups 1-4 when enabled - Update usage() documentation with new option - Enable CTest when --build-viewer-only is specified - Allows bypassing pre-existing Group 3/4 build errors Tested: Successfully skips Groups 1-4 and builds Group 5 Viewer targets Validated: situationMapCommon, advancedSymbologyXML, LtsDataView build without errors No Qt5→Qt6 deprecation warnings in Viewer module targets Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../qt6-migrated-legatus/new_docker_build.sh | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/qt6-after/qt6-migrated-legatus/new_docker_build.sh b/qt6-after/qt6-migrated-legatus/new_docker_build.sh index a48db9c25..65c31684e 100755 --- a/qt6-after/qt6-migrated-legatus/new_docker_build.sh +++ b/qt6-after/qt6-migrated-legatus/new_docker_build.sh @@ -39,6 +39,7 @@ Build groups: --group3 / --no-group3 Enable/disable remaining application targets build --group4 / --no-group4 Enable/disable Lts/Proxies module targets and tests only --group5 / --no-group5 Enable/disable Lts/Viewer module targets and tests only + --build-viewer-only Build only Viewer module targets (skip Groups 1-4, implies --group5 --no-ctest) Test execution: --no-ctest Skip ctest execution @@ -410,6 +411,7 @@ BUILD_GROUP2="${BUILD_GROUP2:-ON}" BUILD_GROUP3="${BUILD_GROUP3:-ON}" BUILD_GROUP4="${BUILD_GROUP4:-OFF}" BUILD_GROUP5="${BUILD_GROUP5:-OFF}" +BUILD_VIEWER_ONLY="${BUILD_VIEWER_ONLY:-OFF}" RUN_CTEST="${RUN_CTEST:-ON}" TESTS_ONLY="${TESTS_ONLY:-OFF}" INTEGRATION_TEST="${INTEGRATION_TEST:-OFF}" @@ -468,6 +470,11 @@ while [[ $# -gt 0 ]]; do --no-group5) BUILD_GROUP5=OFF ;; + --build-viewer-only) + BUILD_VIEWER_ONLY=ON + BUILD_GROUP5=ON + RUN_CTEST=ON + ;; --grantlee) BUILD_GRANTLEE=ON ;; @@ -539,6 +546,7 @@ BUILD_GROUP2="$(normalize_on_off "$BUILD_GROUP2" "BUILD_GROUP2")" BUILD_GROUP3="$(normalize_on_off "$BUILD_GROUP3" "BUILD_GROUP3")" BUILD_GROUP4="$(normalize_on_off "$BUILD_GROUP4" "BUILD_GROUP4")" BUILD_GROUP5="$(normalize_on_off "$BUILD_GROUP5" "BUILD_GROUP5")" +BUILD_VIEWER_ONLY="$(normalize_on_off "$BUILD_VIEWER_ONLY" "BUILD_VIEWER_ONLY")" RUN_CTEST="$(normalize_on_off "$RUN_CTEST" "RUN_CTEST")" TESTS_ONLY="$(normalize_on_off "$TESTS_ONLY" "TESTS_ONLY")" INTEGRATION_TEST="$(normalize_on_off "$INTEGRATION_TEST" "INTEGRATION_TEST")" @@ -547,7 +555,7 @@ BUILD_PREBUILT_IMAGE="$(normalize_on_off "$BUILD_PREBUILT_IMAGE" "BUILD_PREBUILT DELETE_PREBUILT_IMAGE="$(normalize_on_off "$DELETE_PREBUILT_IMAGE" "DELETE_PREBUILT_IMAGE")" # Export variables for Docker container -export BUILD_ALL BUILD_RTI BUILD_GRANTLEE BUILD_ARCGIS BUILD_GROUP1 BUILD_GROUP2 BUILD_GROUP3 BUILD_GROUP4 BUILD_GROUP5 RUN_CTEST TESTS_ONLY INTEGRATION_TEST USE_PREBUILT_IMAGE BUILD_PREBUILT_IMAGE DELETE_PREBUILT_IMAGE DOCKER_IMAGE +export BUILD_ALL BUILD_RTI BUILD_GRANTLEE BUILD_ARCGIS BUILD_GROUP1 BUILD_GROUP2 BUILD_GROUP3 BUILD_GROUP4 BUILD_GROUP5 BUILD_VIEWER_ONLY RUN_CTEST TESTS_ONLY INTEGRATION_TEST USE_PREBUILT_IMAGE BUILD_PREBUILT_IMAGE DELETE_PREBUILT_IMAGE DOCKER_IMAGE # Group 5: Viewer module targets (conditional on BUILD_ARCGIS) if [[ "${BUILD_ARCGIS}" == "ON" ]]; then @@ -599,6 +607,7 @@ log_info "BUILD_RTI=${BUILD_RTI}" log_group "Build Group 1 (ddscore ddsftccore ddsQoS ddsconnector ddsfts)" "$BUILD_GROUP1" log_group "Build Group 2 (migration_tests)" "$BUILD_GROUP2" log_group "Build Group 3 (application targets)" "$BUILD_GROUP3" +log_info "BUILD_VIEWER_ONLY=${BUILD_VIEWER_ONLY}" log_info "RUN_CTEST=${RUN_CTEST}" log_info "TESTS_ONLY=${TESTS_ONLY}" log_info "INTEGRATION_TEST=${INTEGRATION_TEST}" @@ -652,6 +661,7 @@ BUILD_GROUP2="${BUILD_GROUP2:-ON}" BUILD_GROUP3="${BUILD_GROUP3:-ON}" BUILD_GROUP4="${BUILD_GROUP4:-OFF}" BUILD_GROUP5="${BUILD_GROUP5:-OFF}" +BUILD_VIEWER_ONLY="${BUILD_VIEWER_ONLY:-OFF}" RUN_CTEST="${RUN_CTEST:-ON}" TESTS_ONLY="${TESTS_ONLY:-OFF}" INTEGRATION_TEST="${INTEGRATION_TEST:-OFF}" @@ -744,6 +754,13 @@ read -r -a GROUP4_ARRAY <<< "${GROUP4_TARGETS}" read -r -a GROUP5_ARRAY <<< "${GROUP5_TARGETS}" if [[ "${TESTS_ONLY}" != "ON" ]]; then + if [[ "${BUILD_VIEWER_ONLY}" == "ON" ]]; then + log_info "BUILD_VIEWER_ONLY enabled - skipping Groups 1-4, building only Viewer module targets" + BUILD_GROUP1=OFF + BUILD_GROUP2=OFF + BUILD_GROUP3=OFF + BUILD_GROUP4=OFF + fi run_build_group "Group 1" "${BUILD_GROUP1}" "group1_build.log" "${GROUP1_ARRAY[@]}" run_build_group "Group 4 (DDS Tests)" "${BUILD_GROUP4}" "group4_build.log" "${GROUP4_ARRAY[@]}" run_build_group "Group 2" "${BUILD_GROUP2}" "group2_build.log" "${GROUP2_ARRAY[@]}" @@ -781,6 +798,7 @@ docker run --rm \ -e BUILD_GROUP3 \ -e BUILD_GROUP4 \ -e BUILD_GROUP5 \ + -e BUILD_VIEWER_ONLY \ -e RUN_CTEST \ -e TESTS_ONLY \ -e INTEGRATION_TEST \ From b6a97c39e52358a827255a22c2e622bbf3177019 Mon Sep 17 00:00:00 2001 From: twi-devel Date: Wed, 23 Sep 2026 17:37:56 +0200 Subject: [PATCH 2/3] Fix KDReports detection and add codification support for viewer-only builds - Update FindKDReports.cmake to always use CONFIG mode first with explicit search paths - Add --codification/--no-codification CLI options to new_docker_build.sh - Add BUILD_CODIFICATION to cmake invocation and Docker environment variables - Fix BUILD_GROUP5=ON when BUILD_VIEWER_ONLY is enabled - Exclude LtsFileDialog from viewer-only builds (depends on Group 4 services) - Fix KDReports git clone to use default branch (removed non-existent branch) - Add KDReports symlink creation to Dockerfile for include path compatibility Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../cmake/FindKDReports.cmake | 65 ++++++----- .../qt6-migrated-legatus/new_docker_build.sh | 102 +++++++++++++----- 2 files changed, 109 insertions(+), 58 deletions(-) diff --git a/qt6-after/qt6-migrated-legatus/cmake/FindKDReports.cmake b/qt6-after/qt6-migrated-legatus/cmake/FindKDReports.cmake index 27677e9e9..d03eb3467 100755 --- a/qt6-after/qt6-migrated-legatus/cmake/FindKDReports.cmake +++ b/qt6-after/qt6-migrated-legatus/cmake/FindKDReports.cmake @@ -8,41 +8,40 @@ if(NOT Qt6_FOUND) endif() set(_qt_prefix "Qt6") -# If KDReports already provided via variables, use them -IF(KDREPORTS_INCLUDE_DIR AND KDREPORTS_KDREPORTS_INCLUDE_DIR AND KDREPORTS_LIBRARY) - SET(KDREPORTS_FOUND TRUE) - SET(KDReports_FOUND TRUE) -ELSE() - # Prefer KDReports-qt6 package config if installed under standard prefixes - if(EXISTS "${CMAKE_PREFIX_PATH}/lib64/cmake/KDReports-qt6" OR EXISTS "/usr/local/lib64/cmake/KDReports-qt6" OR EXISTS "${CMAKE_PREFIX_PATH}/lib/cmake/KDReports-qt6" OR EXISTS "/usr/local/lib/cmake/KDReports-qt6") - message(STATUS "Found KDReports-qt6 package config") - set(KDREPORTS_FOUND TRUE) - set(KDReports_FOUND TRUE) - # Best-effort defaults; specific projects will use the imported target below - set(KDREPORTS_INCLUDE_DIR "/usr/local/include/KDReports-qt6") - set(KDREPORTS_KDREPORTS_INCLUDE_DIR "/usr/local/include/KDReports-qt6") - # Check lib64 first, then lib - if(EXISTS "/usr/local/lib64/libkdreports-qt6.so") - set(KDREPORTS_LIBRARY "/usr/local/lib64/libkdreports-qt6.so") - else() - set(KDREPORTS_LIBRARY "/usr/local/lib/libkdreports-qt6.so") - endif() +# Prefer KDReports-qt6 package config if installed under standard prefixes +# Search in common installation locations for KDReports cmake config +list(APPEND CMAKE_PREFIX_PATH /usr/local /usr) +find_package(KDReports-qt6 CONFIG QUIET PATHS /usr/local/lib/cmake/KDReports-qt6 /usr/local/lib64/cmake/KDReports-qt6 /usr/lib/cmake/KDReports-qt6 /usr/lib64/cmake/KDReports-qt6) +if(KDReports-qt6_FOUND OR KDReports-qt6_CONFIG) + message(STATUS "Found KDReports-qt6 package config") + set(KDREPORTS_FOUND TRUE) + set(KDReports_FOUND TRUE) + # KDReports-qt6 config provides KDReports::KDReports imported target + # Set variables for compatibility with code that uses them + set(KDREPORTS_INCLUDE_DIR "/usr/local/include/KDReports-qt6") + set(KDREPORTS_KDREPORTS_INCLUDE_DIR "/usr/local/include/KDReports-qt6") + # Check lib64 first, then lib + if(EXISTS "/usr/local/lib64/libkdreports-qt6.so") + set(KDREPORTS_LIBRARY "/usr/local/lib64/libkdreports-qt6.so") else() - FIND_PATH(KDREPORTS_INCLUDE_DIR KDReports/KDReports.h) - FIND_PATH(KDREPORTS_KDREPORTS_INCLUDE_DIR KDReports.h PATH_SUFFIXES KDReports) - FIND_LIBRARY(KDREPORTS_LIBRARY NAMES kdreports kdreport kdreports-qt6) - - INCLUDE(FindPackageHandleStandardArgs) - FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDReports DEFAULT_MSG - KDREPORTS_LIBRARY - KDREPORTS_INCLUDE_DIR - KDREPORTS_KDREPORTS_INCLUDE_DIR - ) - - MARK_AS_ADVANCED(KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY) - MARK_AS_ADVANCED(KDREPORTS_KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY) + set(KDREPORTS_LIBRARY "/usr/local/lib/libkdreports-qt6.so") endif() -ENDIF() +else() + # Search both /usr and /usr/local for apt-installed or manually built KDReports + FIND_PATH(KDREPORTS_INCLUDE_DIR KDReports/KDReports.h PATHS /usr/include /usr/local/include) + FIND_PATH(KDREPORTS_KDREPORTS_INCLUDE_DIR KDReports.h PATH_SUFFIXES KDReports PATHS /usr/include /usr/local/include) + FIND_LIBRARY(KDREPORTS_LIBRARY NAMES kdreports kdreport kdreports-qt6 PATHS /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64) + + INCLUDE(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDReports DEFAULT_MSG + KDREPORTS_LIBRARY + KDREPORTS_INCLUDE_DIR + KDREPORTS_KDREPORTS_INCLUDE_DIR + ) + + MARK_AS_ADVANCED(KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY) + MARK_AS_ADVANCED(KDREPORTS_KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY) +endif() IF(NOT TARGET KDReports::KDReports) ADD_LIBRARY(KDReports::KDReports UNKNOWN IMPORTED) diff --git a/qt6-after/qt6-migrated-legatus/new_docker_build.sh b/qt6-after/qt6-migrated-legatus/new_docker_build.sh index 65c31684e..9e09c54c6 100755 --- a/qt6-after/qt6-migrated-legatus/new_docker_build.sh +++ b/qt6-after/qt6-migrated-legatus/new_docker_build.sh @@ -33,6 +33,9 @@ BUILD_GRANTLEE: BUILD_ARCGIS: --arcgis / --no-arcgis Enable/disable BUILD_ARCGIS (default: OFF) +BUILD_CODIFICATION: + --codification / --no-codification Enable/disable BUILD_CODIFICATION (default: OFF, requires KDReports) + Build groups: --group1 / --no-group1 Enable/disable DDS core libraries build --group2 / --no-group2 Enable/disable migration_tests build @@ -61,6 +64,7 @@ Environment variable overrides: BUILD_RTI=ON|OFF BUILD_GRANTLEE=ON|OFF BUILD_ARCGIS=ON|OFF + BUILD_CODIFICATION=ON|OFF BUILD_GROUP1=ON|OFF BUILD_GROUP2=ON|OFF BUILD_GROUP3=ON|OFF @@ -84,6 +88,7 @@ Defaults: BUILD_RTI=ON BUILD_GRANTLEE=ON BUILD_ARCGIS=OFF + BUILD_CODIFICATION=OFF BUILD_GROUP1=ON BUILD_GROUP2=ON BUILD_GROUP3=ON @@ -362,6 +367,17 @@ RUN pip3 install --break-system-packages --quiet aqtinstall && \ --outputdir ${QT_BASE_DIR} && \ rm -rf /root/.cache/Aqt +# Install KDReports from source (apt package not available in Ubuntu 22.04/26.04) +# Try apt install first (will fail), then build from KDAB GitHub mirror +RUN apt-get install -y -qq libkdreports-dev 2>/dev/null || \ + (git clone --depth 1 https://github.com/KDAB/KDReports.git /tmp/KDReports && \ + cd /tmp/KDReports && \ + mkdir build && cd build && \ + cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_PREFIX_PATH=${QT_BASE_DIR} .. && \ + make -j$(nproc) && \ + make install && \ + cd / && rm -rf /tmp/KDReports) + CMD ["/bin/bash"] EOF @@ -406,6 +422,7 @@ BUILD_ALL="${BUILD_ALL:-ON}" BUILD_RTI="${BUILD_RTI:-ON}" BUILD_GRANTLEE="${BUILD_GRANTLEE:-ON}" BUILD_ARCGIS="${BUILD_ARCGIS:-OFF}" +BUILD_CODIFICATION="${BUILD_CODIFICATION:-OFF}" BUILD_GROUP1="${BUILD_GROUP1:-ON}" BUILD_GROUP2="${BUILD_GROUP2:-ON}" BUILD_GROUP3="${BUILD_GROUP3:-ON}" @@ -418,11 +435,6 @@ INTEGRATION_TEST="${INTEGRATION_TEST:-OFF}" USE_PREBUILT_IMAGE="${USE_PREBUILT_IMAGE:-OFF}" BUILD_PREBUILT_IMAGE="${BUILD_PREBUILT_IMAGE:-OFF}" DELETE_PREBUILT_IMAGE="${DELETE_PREBUILT_IMAGE:-OFF}" -if [[ "${USE_PREBUILT_IMAGE}" == "ON" ]]; then - DOCKER_IMAGE="${DOCKER_IMAGE:-qt-migration-builder:latest}" -else - DOCKER_IMAGE="${DOCKER_IMAGE:-ubuntu:26.04}" -fi export QT_VERSION="${QT_VERSION:-6.10.2}" export QT_ARCH="${QT_ARCH:-linux_gcc_64}" # aqtinstall uses 'linux_gcc_64' but creates directory 'gcc_64' @@ -487,6 +499,12 @@ while [[ $# -gt 0 ]]; do --no-arcgis) BUILD_ARCGIS=OFF ;; + --codification) + BUILD_CODIFICATION=ON + ;; + --no-codification) + BUILD_CODIFICATION=OFF + ;; --no-ctest) RUN_CTEST=OFF ;; @@ -541,6 +559,7 @@ BUILD_ALL="$(normalize_on_off "$BUILD_ALL" "BUILD_ALL")" BUILD_RTI="$(normalize_on_off "$BUILD_RTI" "BUILD_RTI")" BUILD_GRANTLEE="$(normalize_on_off "$BUILD_GRANTLEE" "BUILD_GRANTLEE")" BUILD_ARCGIS="$(normalize_on_off "$BUILD_ARCGIS" "BUILD_ARCGIS")" +BUILD_CODIFICATION="$(normalize_on_off "$BUILD_CODIFICATION" "BUILD_CODIFICATION")" BUILD_GROUP1="$(normalize_on_off "$BUILD_GROUP1" "BUILD_GROUP1")" BUILD_GROUP2="$(normalize_on_off "$BUILD_GROUP2" "BUILD_GROUP2")" BUILD_GROUP3="$(normalize_on_off "$BUILD_GROUP3" "BUILD_GROUP3")" @@ -554,29 +573,60 @@ USE_PREBUILT_IMAGE="$(normalize_on_off "$USE_PREBUILT_IMAGE" "USE_PREBUILT_IMAGE BUILD_PREBUILT_IMAGE="$(normalize_on_off "$BUILD_PREBUILT_IMAGE" "BUILD_PREBUILT_IMAGE")" DELETE_PREBUILT_IMAGE="$(normalize_on_off "$DELETE_PREBUILT_IMAGE" "DELETE_PREBUILT_IMAGE")" +# Set DOCKER_IMAGE default after argument parsing +if [[ "${USE_PREBUILT_IMAGE}" == "ON" ]]; then + DOCKER_IMAGE="${DOCKER_IMAGE:-legatus-qt6-prebuilt:latest}" +else + DOCKER_IMAGE="${DOCKER_IMAGE:-ubuntu:26.04}" +fi + # Export variables for Docker container -export BUILD_ALL BUILD_RTI BUILD_GRANTLEE BUILD_ARCGIS BUILD_GROUP1 BUILD_GROUP2 BUILD_GROUP3 BUILD_GROUP4 BUILD_GROUP5 BUILD_VIEWER_ONLY RUN_CTEST TESTS_ONLY INTEGRATION_TEST USE_PREBUILT_IMAGE BUILD_PREBUILT_IMAGE DELETE_PREBUILT_IMAGE DOCKER_IMAGE +export BUILD_ALL BUILD_RTI BUILD_GRANTLEE BUILD_ARCGIS BUILD_CODIFICATION BUILD_GROUP1 BUILD_GROUP2 BUILD_GROUP3 BUILD_GROUP4 BUILD_GROUP5 BUILD_VIEWER_ONLY RUN_CTEST TESTS_ONLY INTEGRATION_TEST USE_PREBUILT_IMAGE BUILD_PREBUILT_IMAGE DELETE_PREBUILT_IMAGE DOCKER_IMAGE # Group 5: Viewer module targets (conditional on BUILD_ARCGIS) +# Note: LtsFileDialog excluded from viewer-only builds due to Group 4 dependencies (svcExmCommon, svcOpmCommon, svcFlmCommon) if [[ "${BUILD_ARCGIS}" == "ON" ]]; then - GROUP5_TARGETS=( - # Viewer module with ArcGIS - situationMapCommon - advancedSymbology - advancedSymbologyXML - LtsDataView - LtsFileDialog - LtsReportDisplay - ) + if [[ "${BUILD_VIEWER_ONLY}" == "ON" ]]; then + # Viewer-only build: exclude LtsFileDialog (requires Group 4 services) + GROUP5_TARGETS=( + # Viewer module with ArcGIS (viewer-only subset) + situationMapCommon + advancedSymbology + advancedSymbologyXML + LtsDataView + LtsReportDisplay + ) + else + GROUP5_TARGETS=( + # Viewer module with ArcGIS (full build) + situationMapCommon + advancedSymbology + advancedSymbologyXML + LtsDataView + LtsFileDialog + LtsReportDisplay + ) + fi else - GROUP5_TARGETS=( - # Viewer module without ArcGIS (advancedSymbology requires ArcGIS) - situationMapCommon - advancedSymbologyXML - LtsDataView - LtsFileDialog - LtsReportDisplay - ) + if [[ "${BUILD_VIEWER_ONLY}" == "ON" ]]; then + # Viewer-only build: exclude LtsFileDialog (requires Group 4 services) + GROUP5_TARGETS=( + # Viewer module without ArcGIS (viewer-only subset, advancedSymbology requires ArcGIS) + situationMapCommon + advancedSymbologyXML + LtsDataView + LtsReportDisplay + ) + else + GROUP5_TARGETS=( + # Viewer module without ArcGIS (full build) + situationMapCommon + advancedSymbologyXML + LtsDataView + LtsFileDialog + LtsReportDisplay + ) + fi fi require_non_empty "${DOCKER_IMAGE}" "DOCKER_IMAGE" @@ -743,9 +793,10 @@ cmake .. \ -DBUILD_RTI="${BUILD_RTI}" \ -DBUILD_GRANTLEE="${BUILD_GRANTLEE}" \ -DBUILD_ARCGIS="${BUILD_ARCGIS}" \ + -DBUILD_CODIFICATION="${BUILD_CODIFICATION}" \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_PREFIX_PATH="${QT_BASE_DIR}/${QT_VERSION}/${QT_ARCH_DIR}${BUILD_ARCGIS:+;/workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk}" + -DCMAKE_PREFIX_PATH="${QT_BASE_DIR}/${QT_VERSION}/${QT_ARCH_DIR}${BUILD_ARCGIS:+;/workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk};/usr/local" read -r -a GROUP1_ARRAY <<< "${GROUP1_TARGETS}" read -r -a GROUP2_ARRAY <<< "${GROUP2_TARGETS}" @@ -760,9 +811,9 @@ if [[ "${TESTS_ONLY}" != "ON" ]]; then BUILD_GROUP2=OFF BUILD_GROUP3=OFF BUILD_GROUP4=OFF + BUILD_GROUP5=ON fi run_build_group "Group 1" "${BUILD_GROUP1}" "group1_build.log" "${GROUP1_ARRAY[@]}" - run_build_group "Group 4 (DDS Tests)" "${BUILD_GROUP4}" "group4_build.log" "${GROUP4_ARRAY[@]}" run_build_group "Group 2" "${BUILD_GROUP2}" "group2_build.log" "${GROUP2_ARRAY[@]}" run_build_group "Group 3" "${BUILD_GROUP3}" "group3_build.log" "${GROUP3_ARRAY[@]}" run_build_group "Group 4" "${BUILD_GROUP4}" "group4_build.log" "${GROUP4_ARRAY[@]}" @@ -793,6 +844,7 @@ docker run --rm \ -e BUILD_RTI \ -e BUILD_GRANTLEE \ -e BUILD_ARCGIS \ + -e BUILD_CODIFICATION \ -e BUILD_GROUP1 \ -e BUILD_GROUP2 \ -e BUILD_GROUP3 \ From c664611b809f34de0c27dab869a256fdaeaf69a8 Mon Sep 17 00:00:00 2001 From: twi-devel Date: Thu, 24 Sep 2026 16:49:49 +0200 Subject: [PATCH 3/3] Migrates non-ArcGIS built successfully (tbc) --- qt6-after/qt6-migrated-legatus/CMakeLists.txt | 1 + .../Lts/Viewer/CMakeLists.txt | 2 +- .../Lts/Viewer/LtsDataView/CMakeLists.txt | 13 +++++------ .../Lts/Viewer/LtsDataView/test.cpp | 4 ++++ .../cmake/NGLMacros.cmake | 15 +++++++++---- .../qt6-migrated-legatus/new_docker_build.sh | 22 +++++++++++++++++++ 6 files changed, 45 insertions(+), 12 deletions(-) diff --git a/qt6-after/qt6-migrated-legatus/CMakeLists.txt b/qt6-after/qt6-migrated-legatus/CMakeLists.txt index 26c481bc6..505dcdb8e 100755 --- a/qt6-after/qt6-migrated-legatus/CMakeLists.txt +++ b/qt6-after/qt6-migrated-legatus/CMakeLists.txt @@ -151,6 +151,7 @@ OPTION(BUILD_PLUGINS_PARTICIPANT_ORG_CHART "Build ParticipantOrgChart (requires OPTION(BUILD_PLUGINS_MSDL "Build MSDL module (requires Qt6 XmlPatterns)" OFF) OPTION(BUILD_PLUGINS_SAAB "Build Saab module (requires Qt6 XmlPatterns)" OFF) OPTION(BUILD_RTI "Build RTI Connext DDS dependent modules" OFF) +OPTION(BUILD_VIEWER_ONLY "Build only Viewer module (no RTI required)" OFF) # Add Lts/ include path globally for QosProfile and other Lts headers INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/Lts) IF(BUILD_RTI) diff --git a/qt6-after/qt6-migrated-legatus/Lts/Viewer/CMakeLists.txt b/qt6-after/qt6-migrated-legatus/Lts/Viewer/CMakeLists.txt index cba2a74fe..bf979be26 100644 --- a/qt6-after/qt6-migrated-legatus/Lts/Viewer/CMakeLists.txt +++ b/qt6-after/qt6-migrated-legatus/Lts/Viewer/CMakeLists.txt @@ -5,7 +5,7 @@ # ADD_SUBDIRECTORY(SituationMap) -IF(BUILD_RTI) +IF(BUILD_RTI OR BUILD_VIEWER_ONLY) ADD_SUBDIRECTORY(LtsDataView) ENDIF() ADD_SUBDIRECTORY(LtsFileDialog) diff --git a/qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/CMakeLists.txt b/qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/CMakeLists.txt index 1c872dea8..48e7fe295 100755 --- a/qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/CMakeLists.txt +++ b/qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/CMakeLists.txt @@ -64,15 +64,14 @@ NGL_INSTALL_TARGET(LtsDataView) # Test-Executable NGL_ADD_EXECUTABLE(WS NO_TRANSLATION LtsDataViewTest test.h test.cpp) -if(QT6_GUI_AVAILABLE) - NGL_TARGET_LINK_LIBRARIES(LtsDataViewTest - ${Qt6_Widgets} - LtsDataView - LtsWidgets - ) -endif() +NGL_TARGET_LINK_LIBRARIES(LtsDataViewTest + ${Qt6_Widgets} + LtsDataView + LtsWidgets +) # Register test with CTest if(BUILD_TESTING) add_test(NAME LtsDataViewTest COMMAND $) + set_tests_properties(LtsDataViewTest PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen") endif() diff --git a/qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/test.cpp b/qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/test.cpp index 04654e923..5a7b2b277 100755 --- a/qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/test.cpp +++ b/qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/test.cpp @@ -19,6 +19,7 @@ #include #include #include +#include Disp::Disp() @@ -99,5 +100,8 @@ int main(int argc, char **argv) qWarning() << "took" << et.elapsed() << "ms"; + // Auto-exit for CI/headless testing + QTimer::singleShot(1000, &app, &QApplication::quit); + return app.exec(); } diff --git a/qt6-after/qt6-migrated-legatus/cmake/NGLMacros.cmake b/qt6-after/qt6-migrated-legatus/cmake/NGLMacros.cmake index b21abb1ae..acf650d5f 100755 --- a/qt6-after/qt6-migrated-legatus/cmake/NGLMacros.cmake +++ b/qt6-after/qt6-migrated-legatus/cmake/NGLMacros.cmake @@ -122,11 +122,10 @@ SET(_components ALL SV WS AAR TOOLSWS TOOLSSV HLA) MACRO (NGL_GET_BUILDPARTS _args _buildopts) - SET(${_buildopts} "") SET(_at_least_one_keyword_found OFF) - MESSAGE(STATUS "DEBUG NGL_GET_BUILDPARTS: BUILD_ALL=${BUILD_ALL}, BUILD_SV=${BUILD_SV}, BUILD_WS=${BUILD_WS}, BUILD_AAR=${BUILD_AAR}") + MESSAGE(STATUS "DEBUG NGL_GET_BUILDPARTS: _args (name)=${_args}, _args (value)=${${_args}}, BUILD_ALL=${BUILD_ALL}, BUILD_SV=${BUILD_SV}, BUILD_WS=${BUILD_WS}, BUILD_AAR=${BUILD_AAR}") LIST(FIND ${_args} "ALL" _all) IF (_all GREATER -1) @@ -148,8 +147,12 @@ MACRO (NGL_GET_BUILDPARTS _args _buildopts) IF(_idx GREATER -1) LIST(REMOVE_AT ${_args} ${_idx}) SET(_at_least_one_keyword_found ON) + MESSAGE(STATUS "DEBUG ELSE: _component=${_component}, BUILD_${_component}=${BUILD_${_component}}") IF(BUILD_${_component}) LIST(APPEND ${_buildopts} ${_component}) + MESSAGE(STATUS "DEBUG ELSE: Added ${_component} to _buildopts") + ELSE() + MESSAGE(STATUS "DEBUG ELSE: BUILD_${_component} is FALSE/NOTFOUND, NOT adding ${_component}") ENDIF() ENDIF() ENDFOREACH() @@ -162,10 +165,10 @@ ENDMACRO() MACRO (NGL_PARSE_BUILDCOMPONENT_INTERNAL _args _properties _build_target) - NGL_GET_BUILDPARTS(${_args} _buildopts) + NGL_GET_BUILDPARTS(_args _buildopts) SET(${_build_target} OFF) - MESSAGE(STATUS "DEBUG NGL_PARSE: _buildopts=${_buildopts}, _components=${_components}") + MESSAGE(STATUS "DEBUG NGL_PARSE: _args=${_args}, _buildopts=${_buildopts}, _components=${_components}") FOREACH(_component ${_components}) LIST(FIND _buildopts ${_component} _idx) @@ -320,10 +323,14 @@ MACRO (NGL_ADD_EXECUTABLE) NGL_PARSE_BUILDCOMPONENT_INTERNAL(_args _properties _build_target) LIST(GET _args 0 _target_NAME) + MESSAGE(STATUS "DEBUG NGL_ADD_EXECUTABLE: _target_NAME=${_target_NAME}, _build_target=${_build_target}") IF(_build_target) + MESSAGE(STATUS "DEBUG NGL_ADD_EXECUTABLE: Creating executable ${_target_NAME}") ADD_EXECUTABLE(${_args}) SET_TARGET_PROPERTIES(${_target_NAME} PROPERTIES ${_properties}) SET_PROPERTY(GLOBAL APPEND PROPERTY NGL_TS_TARGETS ${_target_NAME}) + ELSE() + MESSAGE(STATUS "DEBUG NGL_ADD_EXECUTABLE: SKIPPING executable ${_target_NAME}") ENDIF() diff --git a/qt6-after/qt6-migrated-legatus/new_docker_build.sh b/qt6-after/qt6-migrated-legatus/new_docker_build.sh index 9e09c54c6..9280d273c 100755 --- a/qt6-after/qt6-migrated-legatus/new_docker_build.sh +++ b/qt6-after/qt6-migrated-legatus/new_docker_build.sh @@ -419,6 +419,9 @@ source ".envrc" set +a BUILD_ALL="${BUILD_ALL:-ON}" +BUILD_SV="${BUILD_SV:-ON}" +BUILD_WS="${BUILD_WS:-ON}" +BUILD_AAR="${BUILD_AAR:-ON}" BUILD_RTI="${BUILD_RTI:-ON}" BUILD_GRANTLEE="${BUILD_GRANTLEE:-ON}" BUILD_ARCGIS="${BUILD_ARCGIS:-OFF}" @@ -485,6 +488,7 @@ while [[ $# -gt 0 ]]; do --build-viewer-only) BUILD_VIEWER_ONLY=ON BUILD_GROUP5=ON + BUILD_CODIFICATION=ON RUN_CTEST=ON ;; --grantlee) @@ -594,6 +598,7 @@ if [[ "${BUILD_ARCGIS}" == "ON" ]]; then advancedSymbology advancedSymbologyXML LtsDataView + LtsDataViewTest LtsReportDisplay ) else @@ -603,7 +608,9 @@ if [[ "${BUILD_ARCGIS}" == "ON" ]]; then advancedSymbology advancedSymbologyXML LtsDataView + LtsDataViewTest LtsFileDialog + LtsFileDialogTest LtsReportDisplay ) fi @@ -615,6 +622,7 @@ else situationMapCommon advancedSymbologyXML LtsDataView + LtsDataViewTest LtsReportDisplay ) else @@ -623,7 +631,9 @@ else situationMapCommon advancedSymbologyXML LtsDataView + LtsDataViewTest LtsFileDialog + LtsFileDialogTest LtsReportDisplay ) fi @@ -703,6 +713,9 @@ set -euo pipefail # Default variable assignments to prevent unbound variable errors USE_PREBUILT_IMAGE="${USE_PREBUILT_IMAGE:-OFF}" BUILD_ALL="${BUILD_ALL:-ON}" +BUILD_SV="${BUILD_SV:-ON}" +BUILD_WS="${BUILD_WS:-ON}" +BUILD_AAR="${BUILD_AAR:-ON}" BUILD_RTI="${BUILD_RTI:-ON}" BUILD_GRANTLEE="${BUILD_GRANTLEE:-ON}" BUILD_ARCGIS="${BUILD_ARCGIS:-OFF}" @@ -790,7 +803,12 @@ cd build4 cmake .. \ -DBUILD_TESTING=ON \ + -DBUILD_ALL="${BUILD_ALL}" \ + -DBUILD_SV="${BUILD_SV}" \ + -DBUILD_WS="${BUILD_WS}" \ + -DBUILD_AAR="${BUILD_AAR}" \ -DBUILD_RTI="${BUILD_RTI}" \ + -DBUILD_VIEWER_ONLY="${BUILD_VIEWER_ONLY}" \ -DBUILD_GRANTLEE="${BUILD_GRANTLEE}" \ -DBUILD_ARCGIS="${BUILD_ARCGIS}" \ -DBUILD_CODIFICATION="${BUILD_CODIFICATION}" \ @@ -841,6 +859,10 @@ docker run --rm \ -e MIGRATE_PIPELINE_ROOT \ -e LANG \ -e LC_ALL \ + -e BUILD_ALL \ + -e BUILD_SV \ + -e BUILD_WS \ + -e BUILD_AAR \ -e BUILD_RTI \ -e BUILD_GRANTLEE \ -e BUILD_ARCGIS \