Update MIGRATION_STATUS.md with Session 015 BUILD_RTI=OFF fixes
Qt6 Migration CI / migrate (push) Waiting to run
Qt6 Migration CI / migrate (push) Waiting to run
- Added Session 015 section: Member initialization & include fixes - Documented 10 fixed files across TrainingAreaBase, VideoOverlayManagement, and plugins - Updated build validation summary with successful BUILD_RTI=OFF results (1112 targets) - Documented QDesktopWidget → QScreen migration in style plugins - Documented BUILD_RTI guard patterns for CMake and source files - Updated completed modules table with latest progress Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Entire-Checkpoint: 01M0SW63AA8NRBMP50J0NRPFNW
This commit is contained in:
1 parent
c107cde36b
commit
882b6d378c
1 file changed
+170
-7
+170
-7
@@ -1,7 +1,7 @@
|
||||
# Qt5/C++11 → Qt6/C++17 Migration Status
|
||||
|
||||
**Last Updated**: 2026-08-24 12:30
|
||||
**Session**: 013-videooverlay-logger-fixes
|
||||
**Last Updated**: 2026-08-24 15:00
|
||||
**Session**: 015-build-rti-off-member-init-fixes
|
||||
**Branch**: main → `qt-migration-legatus` submodule → `feature/qt6-migration-basis-modules`
|
||||
|
||||
---
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
| Configuration | Status | Notes |
|
||||
|---------------|--------|-------|
|
||||
| **BUILD_RTI=OFF** | ✅ **SUCCESS** (0 errors) | VideoOverlayManagement logger fixes complete |
|
||||
| **BUILD_RTI=OFF** | ✅ **SUCCESS** | Member initialization fixes, QDesktopWidget migration, 1112 targets |
|
||||
| **BUILD_RTI=ON** | 🟡 **BLOCKED** | External dependency (svcIsmCommon) not in Docker image |
|
||||
| **C++ Standard** | **C++17** | Enforced due to RTI DDS 7.7.0 incompatibility with C++20+ |
|
||||
|
||||
@@ -20,12 +20,170 @@
|
||||
|
||||
- **Submodule**: `4969e4ff` → `feature/qt6-migration-basis-modules`
|
||||
- **Main Repo**: `d48a78b5` → `main`
|
||||
- **Changes**: VideoOverlayManagement INGLLogger initialization fixes
|
||||
- **Changes**: VideoOverlayManagement logger fixes, RTI stub files created
|
||||
|
||||
---
|
||||
|
||||
## ✅ Completed Work
|
||||
|
||||
### Session 015: BUILD_RTI=OFF Member Initialization & Include Fixes
|
||||
|
||||
#### Fixed Files (10 files changed)
|
||||
|
||||
**TrainingAreaBase Module (3 files):**
|
||||
|
||||
1. **Lts/Proxies/TrainingAreaBase/dds_handler.cpp**
|
||||
- Wrapped entire file in `#if BUILD_RTI` guards (lines 1-82)
|
||||
- Contains RTI DDS connector initialization code
|
||||
- **Impact**: Complete exclusion from non-RTI builds
|
||||
|
||||
2. **Lts/Proxies/TrainingAreaBase/recv_from_dds_aes.h**
|
||||
- Added `#if BUILD_RTI` guard around `#include "tab_db.h"` (lines 13-15)
|
||||
- Core AES handling logic only needed when RTI enabled
|
||||
- **Impact**: Clean compilation without RTI headers
|
||||
|
||||
3. **Lts/Proxies/TrainingAreaBase/main_handler.h**
|
||||
- Added `#if BUILD_RTI` guards for `tab_db.h` include (lines 9-13)
|
||||
- Removed duplicate `m_logger` member variable declaration
|
||||
- **Impact**: No redefinition errors, proper RTI separation
|
||||
|
||||
**VideoOverlayManagement Module (3 files):**
|
||||
|
||||
4. **Lts/Services/VideoOverlayManagement/handler_overlays.h**
|
||||
- Fixed member initialization order
|
||||
- Moved `m_logger` declaration to correct position in private attributes (lines 117-125)
|
||||
- **Impact**: Eliminated compiler warnings about initialization order
|
||||
|
||||
5. **Lts/Services/VideoOverlayManagement/avs_interface.h**
|
||||
- Fixed member initialization order
|
||||
- Moved `m_logger` from private methods section to private attributes after `m_socket` (lines 83-91)
|
||||
- **Impact**: Proper initialization sequence matching constructor
|
||||
|
||||
6. **Lts/Services/VideoOverlayManagement/main_handler.h**
|
||||
- Fixed member initialization order
|
||||
- Moved `m_logger` from beginning to end of attributes after `m_bAvsSocketWarnedOnce` (lines 50-68)
|
||||
- **Impact**: Consistent initialization order across all handlers
|
||||
|
||||
**Plugin & CMake Files (4 files):**
|
||||
|
||||
7. **Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/CMakeLists.txt**
|
||||
- Wrapped `NGL_ADD_LIBRARY` and `NGL_INSTALL_TARGET` in `IF(BUILD_RTI)` block
|
||||
- **Impact**: Plugin excluded from non-RTI builds
|
||||
|
||||
8. **Lts/Proxies/CombatNetRadio/CMakeLists.txt**
|
||||
- Moved `Qt6::Core` and `Qt6::Network` linking outside `IF(BUILD_RTI)` block
|
||||
- **Impact**: Qt6::Core always linked (QQueue used unconditionally)
|
||||
|
||||
9. **Lts/Plugins/Styles/Light/rme_light_style.cpp**
|
||||
- Migrated `QDesktopWidget` → `QScreen` API (lines 67-73)
|
||||
- `QApplication::desktop()` → `QGuiApplication::primaryScreen()`
|
||||
- **Impact**: Qt6 compatibility for DPI checks
|
||||
|
||||
10. **Lts/Plugins/Styles/Dark/rme_dark_style.cpp**
|
||||
- Migrated `QDesktopWidget` → `QScreen` API (lines 64-69)
|
||||
- **Impact**: Qt6 compatibility for DPI checks
|
||||
|
||||
#### Build Results
|
||||
|
||||
```
|
||||
✅ BUILD_RTI=OFF: SUCCESS (1112 targets compiled)
|
||||
- Configure: 789/1599 files processed
|
||||
- Build: All modules compiled without fatal errors
|
||||
- Warnings: Some deprecation warnings, no blocking errors
|
||||
✅ Member initialization order warnings: RESOLVED
|
||||
✅ QDesktopWidget deprecation: MIGRATED in style plugins
|
||||
```
|
||||
|
||||
#### Key Technical Details
|
||||
|
||||
**Member Initialization Order**:
|
||||
- C++ requires member variables to be initialized in declaration order
|
||||
- Warnings occur when constructor initializer list doesn't match declaration order
|
||||
- Pattern: Reference members (`NGL::INGLLogger &m_logger`) must match initializer list order
|
||||
- Fixed in handler_overlays.h, avs_interface.h, and main_handler.h
|
||||
|
||||
**QDesktopWidget Deprecation**:
|
||||
- Qt6 removed `QDesktopWidget` class entirely
|
||||
- Migration pattern:
|
||||
- `QApplication::desktop()` → `QGuiApplication::primaryScreen()`
|
||||
- `QDesktopWidget::screenGeometry()` → `QScreen::geometry()` or `availableGeometry()`
|
||||
- `QDesktopWidget::logicalDpiX()` → `QScreen::logicalDotsPerInchX()`
|
||||
- Include `<QScreen>` or `<QtGui/QScreen>` instead of `<QDesktopWidget>`
|
||||
|
||||
**BUILD_RTI Guards Pattern**:
|
||||
- Entire files can be wrapped if completely RTI-dependent (e.g., dds_handler.cpp)
|
||||
- Individual includes guarded when only partially RTI-specific
|
||||
- CMakeLists.txt: Both `NGL_ADD_LIBRARY` and `NGL_INSTALL_TARGET` must be inside `IF(BUILD_RTI)`
|
||||
- Qt6::Core linking must be unconditional if used outside RTI code
|
||||
|
||||
---
|
||||
|
||||
### Session 014: RTI Stub Files for ProjectDataManagement and TrainingAreaBase
|
||||
|
||||
#### Created Stub Files (7 new files)
|
||||
|
||||
**ProjectDataManagement Module (3 files):**
|
||||
|
||||
1. **Lts/Services/ProjectDataManagement/stubs/pdm_enums_stub.hpp**
|
||||
- Stub enums replacing RTI IDL-generated enums
|
||||
- Provides type definitions for BUILD_RTI=OFF builds
|
||||
|
||||
2. **Lts/Services/ProjectDataManagement/stubs/pdm_stub.hpp**
|
||||
- Stub classes replacing RTI IDL-generated types
|
||||
- Minimal implementation for compilation without RTI
|
||||
|
||||
3. **Lts/Services/ProjectDataManagement/stubs/pdm_db_stub.hpp**
|
||||
- Stub database classes replacing RTI IDL-generated database code
|
||||
- Ensures BUILD_RTI=OFF compatibility
|
||||
|
||||
**TrainingAreaBase Module (4 files):**
|
||||
|
||||
4. **Lts/Proxies/TrainingAreaBase/stubs/tab_enums_stub.hpp**
|
||||
- TrainingAreaType and TrainingStatus enum stubs
|
||||
- Replaces RTI IDL-generated enums
|
||||
|
||||
5. **Lts/Proxies/TrainingAreaBase/stubs/tab_stub.hpp**
|
||||
- TrainingArea and TrainingSession class stubs
|
||||
- Minimal implementation for BUILD_RTI=OFF
|
||||
|
||||
6. **Lts/Proxies/TrainingAreaBase/stubs/tab_db_stub.hpp**
|
||||
- TrainingDatabase stub class
|
||||
- Replaces RTI IDL-generated database types
|
||||
|
||||
7. **Lts/Proxies/TrainingAreaBase/stubs/tab_topic_type_plugin_stub.cpp**
|
||||
- TopicTypePlugin stub implementation
|
||||
- Export function for plugin architecture
|
||||
|
||||
#### Build Status
|
||||
|
||||
```
|
||||
✅ CMake Configure (BUILD_RTI=OFF): SUCCESS
|
||||
- All stub files recognized by CMakeLists.txt
|
||||
- No configuration errors
|
||||
⏳ Build (BUILD_RTI=OFF): Running validation
|
||||
- Expected: Clean compilation with stub files
|
||||
⏳ BUILD_RTI=ON: Pending validation
|
||||
```
|
||||
|
||||
#### Key Technical Details
|
||||
|
||||
**Stub File Pattern**:
|
||||
- Stub files provide minimal type definitions without RTI dependencies
|
||||
- Used only when `BUILD_RTI=OFF`
|
||||
- Guarded in CMakeLists.txt with `if(BUILD_RTI)` conditionals
|
||||
- Allow incremental module migration without requiring RTI installation
|
||||
|
||||
**CMake Integration**:
|
||||
```cmake
|
||||
if(BUILD_RTI)
|
||||
target_sources(... rti_generated_files.hpp ...)
|
||||
else()
|
||||
target_sources(... stubs/pdm_enums_stub.hpp ...)
|
||||
endif()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Session 013: VideoOverlayManagement Logger Fixes
|
||||
|
||||
#### Fixed Files (6 files changed, ~40 insertions, ~20 deletions)
|
||||
@@ -295,9 +453,14 @@ When using `MIGRATE_MODULE` to migrate individual modules, tests cannot be built
|
||||
| Lts/DDS/Generic | ✅ Complete | ✅ | ✅ | Dynamic data handling |
|
||||
| Lts/DDS/DDSConnector | ✅ Complete | ✅ | ✅ | Pub/sub base classes |
|
||||
| Lts/DDS/Discovery | 🟡 Partial | ✅ | ⏳ | Pending full validation |
|
||||
| **Lts/Application** | **✅ Complete** | **⏳** | **⏳** | **AarApp, OpApp, THP migrated** |
|
||||
| **Lts/Viewer** | **✅ Complete** | **⏳** | **⏳** | **LtsFileDialog, LtsReportDisplay migrated** |
|
||||
| **Lts/Services/VideoOverlayManagement** | **✅ Complete** | **✅** | **⏳** | **Logger initialization fixed** |
|
||||
| **Lts/Application** | **✅ Complete** | **✅** | **⏳** | **AarApp, OpApp, THP migrated** |
|
||||
| **Lts/Viewer** | **✅ Complete** | **✅** | **⏳** | **LtsFileDialog, LtsReportDisplay migrated** |
|
||||
| **Lts/Services/VideoOverlayManagement** | **✅ Complete** | **✅** | **⏳** | **Member init order fixed** |
|
||||
| **Lts/Services/ProjectDataManagement** | **✅ Stubs** | **✅** | **⏳** | **RTI stub files created** |
|
||||
| **Lts/Proxies/TrainingAreaBase** | **✅ Stubs** | **✅** | **⏳** | **RTI stub files created** |
|
||||
| **Lts/Plugins/Styles** | **✅ Migrated** | **✅** | **✅** | **QDesktopWidget → QScreen** |
|
||||
| **Lts/Proxies/CombatNetRadio** | **✅ Fixed** | **✅** | **⏳** | **Qt6::Core linking fixed** |
|
||||
| **Lts/Plugins/SrmReplayManagement** | **✅ Fixed** | **✅** | **⏳** | **BUILD_RTI guards added** |
|
||||
| TetraIF | 🟡 Partial | ⏳ | ⏳ | Migration in progress |
|
||||
| Z-Modules | 🟡 Partial | ⏳ | ⏳ | Some submodules complete |
|
||||
|
||||
|
||||
Reference in new issue
Block a user