Qt6 Migration CI / migrate (push) Waiting to run
Document BUILD_RTI guard fixes for DDS modules. BUILD_RTI=OFF configure and partial build successful. Entire-Checkpoint: 01M0NWBTDT7RPKHM60AJ5CFMAD
3.9 KiB
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:
Lts/Common/LtsUtils/LtsUtilsSettings/settings.h- Export header includeLts/Common/LtsWidgets/CMakeLists.txt- PUBLIC link dependencyLts/Plugins/NmeaManagement/Gui/BatteryNotification/nme_battery_info_dialog.cpp- Remove QDesktopWidgetLts/DDS/FTC/CMakeLists.txt- Full IF(BUILD_RTI) guardsLts/DDS/FTS/CMakeLists.txt- Full IF(BUILD_RTI) guards, removed ELSELts/DDS/DTC/CMakeLists.txt- Full IF(BUILD_RTI) guardsLts/DDS/DTS/CMakeLists.txt- Full IF(BUILD_RTI) guardsLts/DDS/DDSConnector/CMakeLists.txt- Full IF(BUILD_RTI) guards, removed ELSELts/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
- Fix BatteryNotification - equipmentNumber()/batteryPort() methods missing from BatteryAlarm struct
- Test BUILD_RTI=ON - Verify RTI builds still work correctly
- Push submodule changes - Commit c042faae to remote
- Implement auto-update - Cron job or CI trigger for MIGRATION_STATUS.md
- 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.