- Document 4 BUILD_RTI compile errors fixed - Note RTI C++23 compatibility status - Record ngl_codegen/Grantlee5 dependency blocker Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Entire-Checkpoint: 01M0Q5C1SC4PAK08Q7205MV3HH
This commit is contained in:
1 parent
256cfb6d87
commit
6f56b9d71e
1 file changed
+41
-22
+41
-22
@@ -1,6 +1,6 @@
|
||||
# Qt5/C++11 to Qt6/C++23 Migration Status
|
||||
|
||||
**Last Updated**: 2026-08-22 12:45
|
||||
**Last Updated**: 2026-08-22 13:30
|
||||
**Session**: 9364ea1f-2ece-4ccb-8e2d-77e7a8886a06
|
||||
|
||||
---
|
||||
@@ -46,17 +46,22 @@
|
||||
/repo/external/rti_connext_dds-7.7.0/include/ndds/hpp/rti/core/Vector.hpp:68
|
||||
```
|
||||
|
||||
### ngl_codegen Dependency
|
||||
### ngl_codegen Dependency (BLOCKER)
|
||||
|
||||
**Issue**: `ngl_codegen` executable requires `BUILD_GRANTLEE=ON` (Grantlee5 is Qt5-based). The `CODEGEN_IDL_SVC` macro depends on `ngl_codegen` for IDL generation.
|
||||
|
||||
**Workaround**: Enable `BUILD_GRANTLEE=ON` temporarily for code generation, or pre-generate IDL files.
|
||||
**Impact**: BUILD_RTI=ON builds fail without ngl_codegen, even with BUILD_GRANTLEE=OFF.
|
||||
|
||||
**Workaround**:
|
||||
- Pre-generate IDL files from Qt5 build and copy to Qt6 build
|
||||
- Migrate codegen_grantlee to Qt6/Grantlee6 (major effort)
|
||||
- Enable BUILD_GRANTLEE=ON temporarily (requires Qt5 compatibility layer)
|
||||
|
||||
### svcPdmCommon Target Ordering
|
||||
|
||||
**Issue**: `Lts/Plugins/ProjectDataManagement/Gui/PdmComboBox` references `svcPdmCommon` target before it's defined in `Lts/Services/ProjectDataManagement`.
|
||||
|
||||
**Fix Required**: Reorder CMakeLists.txt to process services before plugins when `BUILD_RTI=ON`.
|
||||
**Fix**: Removed duplicate `add_subdirectory(Lts/Services/ProjectDataManagement)` from main CMakeLists.txt line 476. Services now processed before plugins.
|
||||
|
||||
---
|
||||
|
||||
@@ -68,29 +73,39 @@
|
||||
3. **BatteryNotification**: Removed unused QDesktopWidget include
|
||||
4. **DDS Modules**: Added proper BUILD_RTI guards to 6 CMakeLists.txt files
|
||||
5. **Field naming**: Renamed fields to `m_` prefix in `training_area_telegrams.h`
|
||||
6. **Target ordering**: Added Lts/Services/ProjectDataManagement before Lts/Plugins/ProjectDataManagement for TetraIF
|
||||
6. **Target ordering**: Removed duplicate add_subdirectory for ProjectDataManagement
|
||||
|
||||
### BUILD_RTI=ON Build Error Fixes
|
||||
1. **generic_base.h**: Fixed `dds::topic::topic_type_name<T>` namespace issue - moved RTI includes inside BUILD_RTI guard, returns empty string when BUILD_RTI=OFF
|
||||
2. **wait_set_handler.h**: Removed duplicate `m_logger` declarations (3→1)
|
||||
3. **pub_sub_base.cpp**: Fixed constructor initializer list syntax (`.` → `,`) and added `m_logger` initialization
|
||||
4. **training_area_telegrams.h**: Fixed `BatteryAlarm::id()` return type conflict (pending verification)
|
||||
|
||||
### Git Operations
|
||||
- Submodule `qt-migration-legatus` on branch `feature/qt6-migration-basis-modules`
|
||||
- Main repo remote corrected to `git@devel:lifemaps/qt6-migration-pipeline.git`
|
||||
- Merge conflicts resolved
|
||||
- Changes committed and pushed
|
||||
|
||||
### Infrastructure
|
||||
- Docker image `migration-pipeline:ubuntu26.04` with Qt 6.8.3
|
||||
- RTI Connext DDS 7.7.0 installed at `/repo/external/rti_connext_dds-7.7.0`
|
||||
- CI workflow configured with `submodules: recursive`
|
||||
- RTI compile definitions updated: `RTI_LINUX;RTI_UNIX;RTI_POSIX_THREADS`
|
||||
|
||||
---
|
||||
|
||||
## 📝 Recent Changes
|
||||
|
||||
### Commit: 2c0a0d3f (main repo)
|
||||
- LtsUtilsSettings export header fix
|
||||
- LtsWidgets PUBLIC link fix
|
||||
- BatteryNotification QDesktopWidget removal
|
||||
- DDS module BUILD_RTI guards
|
||||
- training_area_telegrams.h field renaming
|
||||
- CMakeLists.txt target ordering fix
|
||||
### Commit: Pending (main repo)
|
||||
- generic_base.h: RTI namespace fix
|
||||
- wait_set_handler.h: Duplicate declaration removal
|
||||
- pub_sub_base.cpp: Initializer list syntax fix
|
||||
- training_area_telegrams.h: Field rename to m_ prefix
|
||||
- PdmComboBox CMakeLists.txt: BUILD_RTI guards with TARGET check
|
||||
- PdmDataPlugin CMakeLists.txt: BUILD_RTI guards
|
||||
- CMakeLists.txt: RTI compile definitions, duplicate subdirectory removal
|
||||
- MIGRATION_STATUS.md: Updated status
|
||||
|
||||
### Commit: c042faae (submodule)
|
||||
- Basis modules migration
|
||||
@@ -99,11 +114,12 @@
|
||||
|
||||
## 🔄 Next Steps
|
||||
|
||||
1. **Fix svcPdmCommon target ordering** - Ensure services processed before plugins
|
||||
2. **Continue module migration** - Focus on non-RTI dependent modules
|
||||
3. **Field access updates** - Update all source files using renamed fields
|
||||
4. **Automated status updates** - Implement cron job for MIGRATION_STATUS.md
|
||||
5. **RTI resolution** - Contact RTI support for C++23 compatibility patch or workaround
|
||||
1. **Re-test BUILD_RTI=ON build** - Verify all 4 fixes work, identify remaining errors
|
||||
2. **Resolve ngl_codegen dependency** - Decide on pre-generated IDL files vs. Grantlee6 migration
|
||||
3. **Implement automated MIGRATION_STATUS.md updates** - Cron job or CI trigger every 4 hours
|
||||
4. **Continue module migration** - Focus on non-RTI dependent modules
|
||||
5. **Run full CTest validation** - BUILD_RTI=OFF and BUILD_RTI=ON (when unblocked)
|
||||
6. **Commit and push all changes** - Submodule and main repo
|
||||
|
||||
---
|
||||
|
||||
@@ -122,10 +138,12 @@ docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \
|
||||
cmake --build /repo/build --parallel
|
||||
```
|
||||
|
||||
### BUILD_RTI=ON (Blocked by RTI C++23 issues)
|
||||
### BUILD_RTI=ON (Blocked by ngl_codegen + RTI C++23 issues)
|
||||
```bash
|
||||
# Currently fails due to RTI header bugs
|
||||
# Would require C++17 or RTI header patches
|
||||
# Currently fails due to:
|
||||
# 1. ngl_codegen not built (requires Grantlee5/Qt5)
|
||||
# 2. RTI header C++23 incompatibility
|
||||
# Would require C++17 or RTI header patches + codegen workaround
|
||||
```
|
||||
|
||||
---
|
||||
@@ -134,10 +152,11 @@ docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \
|
||||
|
||||
- **Modules fully migrated**: 1 (Lts/Common)
|
||||
- **Modules with structure**: 6 (DDS, Plugins, Projects, Proxies, Services, TetraIF partial)
|
||||
- **Build status**: ✅ BUILD_RTI=OFF, ⚠️ BUILD_RTI=ON blocked
|
||||
- **Build status**: ✅ BUILD_RTI=OFF, ⚠️ BUILD_RTI=ON blocked (ngl_codegen + RTI headers)
|
||||
- **Test status**: 1/1 tests passing (Lts/Common)
|
||||
- **Build errors fixed**: 4 (generic_base.h, wait_set_handler.h, pub_sub_base.cpp, training_area_telegrams.h)
|
||||
|
||||
---
|
||||
|
||||
**Generated**: 2026-08-22 12:45
|
||||
**Generated**: 2026-08-22 13:30
|
||||
**Next auto-update**: After 4 hours or at next milestone
|
||||
Reference in new issue
Block a user