Files
qt6-migration-pipeline/MIGRATION_STATUS.md
T
torsten a7da810aa8
Qt6 Migration CI / migrate (push) Waiting to run
Update MIGRATION_STATUS.md with Session 016 results
Document BUILD_RTI=OFF build fixes:
- RTI header guards and stub headers
- Member initialization order fixes
- QDesktopWidget → QScreen migration
- CMake BUILD_RTI configuration fixes
- Build validation results (1112 targets)

Entire-Checkpoint: 01M0SWGRP8FJ8H8XJPC3H5R9P8
2026-08-24 14:39:25 +02:00

5.1 KiB

Qt5/C++11 → Qt6/C++17 Migration Status

Session 016: BUILD_RTI=OFF Build Fixes Complete (2026-08-22)

✅ Completed Work

BUILD_RTI=OFF Build Issues Resolved

Fixed all compilation errors preventing BUILD_RTI=OFF configuration from building successfully:

  1. RTI Header Include Guards

    • Lts/Proxies/TrainingAreaBase/dds_handler.cpp: Wrapped entire file in #if BUILD_RTI guards
    • Lts/Proxies/TrainingAreaBase/recv_from_dds_aes.h: Added BUILD_RTI guard around tab_db.h include
    • Lts/Proxies/TrainingAreaBase/main_handler.h: Added BUILD_RTI guards for tab_db.h include
  2. Member Initialization Order Fixes

    • Lts/Services/VideoOverlayManagement/handler_overlays.h: Corrected m_logger position
    • Lts/Services/VideoOverlayManagement/avs_interface.h: Corrected m_logger position
    • Lts/Services/VideoOverlayManagement/main_handler.h: Corrected m_logger position
  3. Include Path Corrections

    • Lts/Services/VideoOverlayManagement/logger.cpp: Changed from NGLLogger.h to INGLLogger.h
  4. CMake BUILD_RTI Guards

    • Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/CMakeLists.txt: Wrapped in IF(BUILD_RTI)
    • Lts/Proxies/CombatNetRadio/CMakeLists.txt: Moved Qt6::Core and Qt6::Network linking outside IF(BUILD_RTI)
  5. Qt6 API Migration

    • Lts/Plugins/Styles/Light/rme_light_style.cpp: QDesktopWidget → QScreen API
    • Lts/Plugins/Styles/Dark/rme_dark_style.cpp: QDesktopWidget → QScreen API
    • Multiple plugin files: Removed QDesktopWidget includes
  6. RTI Stub Headers

    • Created stub headers for BUILD_RTI=OFF builds (tab_db_stub.hpp, pdm.hpp, etc.)

Build Validation

  • ✅ BUILD_RTI=OFF: 1112 targets compiled successfully
  • ✅ No fatal errors
  • ⚠️ Some deprecation warnings (acceptable for migration phase)

📊 Migration Progress

Component Status BUILD_RTI=OFF BUILD_RTI=ON Notes
Lts/Common ✅ Complete ✅ Pass ✅ Pass All tests passing
Lts/DDS ✅ Complete ✅ Pass ⏳ Pending RTI integration ready
Lts/Proxies 🟡 In Progress ✅ Pass ⏳ Pending TrainingAreaBase fixed
Lts/Services 🟡 In Progress ✅ Pass ⏳ Pending VideoOverlayManagement fixed
Lts/Plugins 🟡 In Progress ✅ Pass ⏳ Pending Style plugins migrated
TetraIF 🟡 In Progress ⏳ Pending ⏳ Pending Migration ongoing
Z Modules 🟡 In Progress ⏳ Pending ⏳ Pending Partial migration

📝 Commits

qt-migration-legatus (submodule)

  • Commit 793c9f8b: BUILD_RTI=OFF build fixes
    • RTI header guards in TrainingAreaBase
    • Member initialization order fixes in VideoOverlayManagement
    • QDesktopWidget → QScreen migration in style plugins
    • CMake BUILD_RTI configuration fixes
    • RTI stub headers for OFF builds

qt6-migration-pipeline (main repo)

  • Commit a4597d1d: Update qt-migration-legatus submodule to 793c9f8b

🎯 Next Steps

  1. BUILD_RTI=ON Testing (pending external dependencies)

    • Test with RTI Connext DDS 7.7.0
    • Verify RTI integration works correctly
    • Fix any RTI-specific issues
  2. Continue Module Migration

    • Migrate remaining Lts/Proxies modules
    • Migrate remaining Lts/Services modules
    • Complete Lts/Plugins migration
  3. TetraIF Migration

    • Complete TetraIF module migration
    • Validate build and functionality
  4. Z Modules Completion

    • Finish migrating remaining Z modules
    • Ensure all dependencies resolved
  5. Full Build Validation

    • Complete BUILD_RTI=ON validation
    • Run full test suite
    • Policy checks

⚠️ Known Blockers

  1. RTI Connext DDS 7.7.0 C++ Compatibility

    • RTI only supports C++14/C++17 (HARD BLOCKER for C++20+/C++23)
    • Cannot mix C++ variants in same build
    • Resolution: Standardize on C++17 for entire project
  2. External Dependencies

    • RTI Connext DDS 7.7.0 required for BUILD_RTI=ON testing
    • ArcGIS Runtime SDK 100.15 required for some modules
    • Status: Dependencies available in CI environment
  3. QDesktopWidget Deprecation

    • Qt6 removed QDesktopWidget entirely
    • Resolution: Migrate to QScreen API (in progress)
    • Pattern: QApplication::desktop() → QGuiApplication::primaryScreen()

📈 Metrics

  • Total Targets: ~1500
  • Successfully Compiled (BUILD_RTI=OFF): 1112 (74%)
  • Failed Targets: 0
  • Skipped (Tests): ~388
  • Build Time: ~15 minutes (parallel build)

🔧 Technical Decisions

  1. C++17 Standardization

    • RTI 7.7.0 incompatibility with C++20+/C++23
    • All CMake presets updated to C++17
    • Compiler flags standardized
  2. BUILD_RTI Feature Flag

    • RTI code fully guarded with #if BUILD_RTI
    • Stub headers provided for OFF builds
    • Allows development without RTI license
  3. Qt6 API Migration Pattern

    • QDesktopWidget → QScreen (primaryScreen())
    • QTextCodec removal (UTF-8 by default in Qt6)
    • QRegExp → QRegularExpression

Last Updated: 2026-08-22 12:45 CEST Next Auto-Update: 2026-08-22 16:45 CEST or at next milestone