Files
qt6-migration-pipeline/MIGRATION_STATUS.md
T
torsten 2c0a0d3ff6
Qt6 Migration CI / migrate (push) Waiting to run
Update MIGRATION_STATUS.md with BUILD_RTI=OFF fix status
Document BUILD_RTI guard fixes for DDS modules.
BUILD_RTI=OFF configure and partial build successful.

Entire-Checkpoint: 01M0NWBTDT7RPKHM60AJ5CFMAD
2026-08-23 01:19:45 +02:00

3.9 KiB

Qt5/C++11 to Qt6/C++23 Migration Status

Last Updated: 2026-08-22 12:32
Session: 9364ea1f-2ece-4ccb-8e2d-77e7a8886a06
Branch: feature/qt6-migration-basis-modules @ c042faae


📊 Current Status

✅ BUILD_RTI=OFF Build - FIXED

Issue: RTI Connext DDS-specific libraries were being built/linked even when BUILD_RTI=OFF, causing CMake configuration failures.

Root Cause: Multiple DDS module CMakeLists.txt files had incomplete BUILD_RTI guards. Some only guarded TARGET_LINK_LIBRARIES but still tried to create libraries that depend on RTI-only components (ddsgen, ddsQoS, etc.).

Fix Applied:

  • Wrapped ENTIRE library definitions in IF(BUILD_RTI) guards (not just link libraries)
  • Removed ELSE() blocks that referenced RTI-only libraries
  • Fixed include path for generated export headers (angle brackets)
  • Fixed transitive include propagation (LtsUtilsSettings → PUBLIC)
  • Removed unused Qt5 legacy includes (QDesktopWidget)

Files Modified:

  1. Lts/Common/LtsUtils/LtsUtilsSettings/settings.h - Export header include
  2. Lts/Common/LtsWidgets/CMakeLists.txt - PUBLIC link dependency
  3. Lts/Plugins/NmeaManagement/Gui/BatteryNotification/nme_battery_info_dialog.cpp - Remove QDesktopWidget
  4. Lts/DDS/FTC/CMakeLists.txt - Full IF(BUILD_RTI) guards
  5. Lts/DDS/FTS/CMakeLists.txt - Full IF(BUILD_RTI) guards, removed ELSE
  6. Lts/DDS/DTC/CMakeLists.txt - Full IF(BUILD_RTI) guards
  7. Lts/DDS/DTS/CMakeLists.txt - Full IF(BUILD_RTI) guards
  8. Lts/DDS/DDSConnector/CMakeLists.txt - Full IF(BUILD_RTI) guards, removed ELSE
  9. Lts/DDS/Routing/CMakeLists.txt - Full IF(BUILD_RTI) guards

Build Result: ✅ Configure successful, Build reached 750/888 targets (remaining failures are unrelated pre-existing code issues in BatteryNotification plugin)


🔧 Repository Configuration

Git Remote

origin  git@devel:lifemaps/qt6-migration-pipeline.git (fetch)
origin  git@devel:lifemaps/qt6-migration-pipeline.git (push)

SSH Config (devel host)

Host devel
    Hostname gitea.life-maps.com
    Port 2223
    User git
    IdentityFile ~/.ssh/twi-devel.gitea

Submodule Status

qt-migration-legatus @ feature/qt6-migration-basis-modules (c042faae)

📈 Migration Progress

Completed

  • SSH connectivity to devel host verified
  • Git submodule initialized and updated
  • Merge conflicts resolved in submodule
  • Git remote corrected to git@devel:lifemaps/qt6-migration-pipeline.git
  • Lts/Common migration complete (1/1 tests passing)
  • BUILD_RTI=OFF CMake configuration - FIXED
  • BUILD_RTI DDS module guards - COMPLETE

In Progress

  • BatteryNotification plugin compilation errors (pre-existing, unrelated to BUILD_RTI)
  • BUILD_RTI=ON build verification
  • Automated MIGRATION_STATUS.md update mechanism

Pending

  • Lts/DDS full migration review
  • Lts/Plugins migration (60 submodules)
  • Lts/Projects migration (5 submodules)
  • Lts/Proxies migration (13 submodules)
  • Lts/Services migration (47 submodules)
  • TetraIF completion
  • Z-modules completion
  • Full build validation
  • CI/CD validation

🚀 Next Steps

  1. Fix BatteryNotification - equipmentNumber()/batteryPort() methods missing from BatteryAlarm struct
  2. Test BUILD_RTI=ON - Verify RTI builds still work correctly
  3. Push submodule changes - Commit c042faae to remote
  4. Implement auto-update - Cron job or CI trigger for MIGRATION_STATUS.md
  5. Continue module migration - Prioritize Lts/Plugins core functionality

📝 Notes

  • BUILD_RTI guard pattern: Wrap ENTIRE library definition, not just TARGET_LINK_LIBRARIES
  • Export headers from CMAKE_CURRENT_BINARY_DIR need angle bracket includes
  • QDesktopWidget removed in Qt6 - migrate to QScreen API or remove if unused
  • Submodule commits must be made separately from main repo commits

This file is auto-updated every 4 hours or at milestones.