Entire-Checkpoint: 01M36NBG4QDQK8MNQBYXJ5P8JR
This commit is contained in:
3 files changed
+612
-1
No files matched your search
@@ -0,0 +1,246 @@
|
||||
# Lts/Viewer Module Qt6 Migration Status Report
|
||||
|
||||
## Executive Summary
|
||||
|
||||
The Lts/Viewer module migration infrastructure has been successfully configured. The build system now supports building and testing all 7 Viewer module targets with mandatory BUILD_RTI=ON and BUILD_GRANTLEE=ON variants.
|
||||
|
||||
## Migration Scope
|
||||
|
||||
**Module**: `Lts/Viewer`
|
||||
- **Qt5 Legacy**: `./qt-migration-legatus/qt5-before/qt5-legatus-legacy/Lts/Viewer`
|
||||
- **Qt6 Target**: `./qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Viewer`
|
||||
- **Target Branch**: `feature/migrate-lts-viewer.md`
|
||||
|
||||
## CMake Targets Configured
|
||||
|
||||
The following 7 targets are now configured in `new_docker_build.sh` under GROUP5:
|
||||
|
||||
1. `situationMapCommon` - Common SituationMap utilities
|
||||
2. `advancedSymbology` - Advanced symbology rendering
|
||||
3. `advancedSymbologyXML` - XML-based symbology
|
||||
4. `advancedSymbologyXML_Gui` - GUI components for XML symbology
|
||||
5. `LtsDataView` - Data visualization component (BUILD_RTI conditional)
|
||||
6. `LtsFileDialog` - File dialog utilities
|
||||
7. `LtsReportDisplay` - Report display component
|
||||
|
||||
## Changes Made
|
||||
|
||||
### 1. Build Script Updates (`new_docker_build.sh`)
|
||||
|
||||
**Added GROUP5 Configuration:**
|
||||
- `--group5/--no-group5` command-line option
|
||||
- `BUILD_GROUP5` environment variable support
|
||||
- `GROUP5_TARGETS` array with all 7 Viewer targets
|
||||
- Help text documentation
|
||||
|
||||
**Added BUILD_GRANTLEE Support:**
|
||||
- `--grantlee/--no-grantlee` command-line option
|
||||
- `BUILD_GRANTLEE` environment variable (default: ON)
|
||||
- CMake invocation with `-DBUILD_GRANTLEE` flag
|
||||
- Container script defaults
|
||||
|
||||
**Bug Fixes:**
|
||||
- Fixed duplicate `BUILD_GROUP4=OFF` default in container script section
|
||||
|
||||
### 2. CTest Integration
|
||||
|
||||
**LtsDataView/CMakeLists.txt:**
|
||||
```cmake
|
||||
if(BUILD_TESTING)
|
||||
add_test(NAME LtsDataViewTest COMMAND $<TARGET_FILE:LtsDataViewTest>)
|
||||
endif()
|
||||
```
|
||||
|
||||
**LtsFileDialog/CMakeLists.txt:**
|
||||
```cmake
|
||||
if(BUILD_TESTING)
|
||||
add_test(NAME LtsFileDialogTest COMMAND $<TARGET_FILE:LtsFileDialogTest>)
|
||||
endif()
|
||||
```
|
||||
|
||||
**Note**: LtsReportDisplay has no test executable defined in CMakeLists.txt.
|
||||
|
||||
### 3. SituationMap Reorganization
|
||||
|
||||
Significant pruning occurred in Qt6 migration:
|
||||
- **Qt5**: 30 subdirectories, 524 files
|
||||
- **Qt6**: 5 subdirectories, 136 files
|
||||
|
||||
**Active in Qt6:**
|
||||
- `Common/`
|
||||
- `SymbologyXML/`
|
||||
- `Symbology/`
|
||||
|
||||
**Commented out in Qt6 CMakeLists.txt:**
|
||||
- `Map/`
|
||||
- `SymbologyImpl/`
|
||||
- 20+ other subdirectories (intentionally removed per commit 92ad7d468)
|
||||
|
||||
## Build Configuration
|
||||
|
||||
### Mandatory Variants (ON only)
|
||||
- `BUILD_RTI=ON` ✓
|
||||
- `BUILD_GRANTLEE=ON` ✓
|
||||
|
||||
### Forbidden Variants (not implemented)
|
||||
- `BUILD_RTI=OFF` ✗
|
||||
- `BUILD_GRANTLEE=OFF` ✗
|
||||
|
||||
### Docker Validation Command
|
||||
```bash
|
||||
cd qt-migration-legatus/qt6-after/qt6-migrated-legatus
|
||||
BUILD_RTI=ON BUILD_GRANTLEE=ON ./new_docker_build.sh --group5
|
||||
```
|
||||
|
||||
### Direct CMake Build Command
|
||||
```bash
|
||||
cmake -S qt-migration-legatus/qt6-after/qt6-migrated-legatus \
|
||||
-B build-rti-on-grantlee-on \
|
||||
-G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Debug \
|
||||
-DBUILD_RTI=ON \
|
||||
-DBUILD_GRANTLEE=ON
|
||||
cmake --build build-rti-on-grantlee-on --parallel
|
||||
ctest --test-dir build-rti-on-grantlee-on --output-on-failure
|
||||
```
|
||||
|
||||
## Preservation Rules Verified
|
||||
|
||||
✓ **Module removals preserved** (commit 92ad7d468)
|
||||
- SituationMap subdirectories intentionally removed
|
||||
- No attempts to restore removed modules
|
||||
|
||||
✓ **LogViewer reinsert preserved** (commit 1fa789767)
|
||||
- LogViewer remains in build configuration
|
||||
|
||||
✓ **IDL warning fixes preserved** (commit be912de9d)
|
||||
- No duplicate enum definitions
|
||||
- No builtin-type collisions
|
||||
|
||||
## Qt5 API Deprecations
|
||||
|
||||
**Found in Qt5 tree only** (not present in Qt6):
|
||||
- `QDesktopWidget` → Should use `QScreen` in Qt6
|
||||
- `QRegExp` → Should use `QRegularExpression` in Qt6
|
||||
|
||||
**Locations in Qt5:**
|
||||
- `SituationMap/EvalApps/`
|
||||
- `SituationMap/Tests/`
|
||||
- `SituationMap/Symbology/`
|
||||
- `SituationMap/SymbologyImpl/`
|
||||
|
||||
**Qt6 tree**: No occurrences found - already migrated.
|
||||
|
||||
## Forward Declarations
|
||||
|
||||
**Location**: `qt6-after/qt6-migrated-legatus/forward-declarations/`
|
||||
|
||||
**Viewer-related files:**
|
||||
- `map_dtc.h` - SituationMap::Dds::Dtc forward declaration
|
||||
- `map_ftc.h` - SituationMap::Dds::Ftc forward declaration
|
||||
|
||||
**Status**: Properly located in allowed directory, not in service directories.
|
||||
|
||||
## Code Generation
|
||||
|
||||
**BUILD_GRANTLEE Integration:**
|
||||
- Root `CMakeLists.txt` line 163: `option(BUILD_GRANTLEE "Enable Grantlee/KTextTemplate code generation" ON)`
|
||||
- `cmake/MacroCodeGenIdl.cmake`: Uses BUILD_GRANTLEE to conditionally skip SQL generation
|
||||
- Forward declaration stubs allow compilation when BUILD_GRANTLEE=OFF (not validated per migration rules)
|
||||
|
||||
**Generated Files:**
|
||||
- No generated files committed to source tree ✓
|
||||
- Build tree generation configured via CMake macros ✓
|
||||
|
||||
## External Dependencies
|
||||
|
||||
Required for Docker builds:
|
||||
- `./external/ArcGIS`
|
||||
- `./external/GeographicLib`
|
||||
- `./external/rti_connext_dds-7.7.0`
|
||||
- `./rti_license.dat` (mounted read-only)
|
||||
|
||||
## Validation Status
|
||||
|
||||
### Completed ✓
|
||||
- [x] Repository state inspection
|
||||
- [x] Branch verification (`feature/migrate-lts-viewer.md`)
|
||||
- [x] Migration prompt requirements analysis
|
||||
- [x] Qt5 vs Qt6 directory structure comparison
|
||||
- [x] Source file inventory (524→136 files in SituationMap)
|
||||
- [x] Qt5 API usage pattern identification
|
||||
- [x] BUILD_RTI conditional verification (already present)
|
||||
- [x] BUILD_GRANTLEE option verification
|
||||
- [x] GROUP5 configuration added to `new_docker_build.sh`
|
||||
- [x] BUILD_GRANTLEE support added to build script
|
||||
- [x] Duplicate BUILD_GROUP4 default fixed
|
||||
- [x] Bash syntax validation passed
|
||||
- [x] Help output tested
|
||||
- [x] CTest registration for LtsDataViewTest
|
||||
- [x] CTest registration for LtsFileDialogTest
|
||||
- [x] Git commit created
|
||||
|
||||
### Pending
|
||||
- [ ] Docker build validation with `--group5` option
|
||||
- [ ] CTest execution in Docker container
|
||||
- [ ] Jenkins/policy compatibility verification
|
||||
- [ ] Full source file migration review (beyond initial grep)
|
||||
- [ ] BUILD_GRANTLEE usage verification in all Viewer CMakeLists.txt files
|
||||
|
||||
## Known Issues
|
||||
|
||||
None identified at this stage. The migration infrastructure is configured and ready for validation builds.
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. **Docker Validation Build**
|
||||
```bash
|
||||
cd qt-migration-legatus/qt6-after/qt6-migrated-legatus
|
||||
BUILD_RTI=ON BUILD_GRANTLEE=ON ./new_docker_build.sh --group5
|
||||
```
|
||||
|
||||
2. **CTest Execution**
|
||||
- Verify LtsDataViewTest runs successfully
|
||||
- Verify LtsFileDialogTest runs successfully
|
||||
- Check test output for any failures
|
||||
|
||||
3. **Jenkins Compatibility**
|
||||
- Verify `ci/check_pr_policies.py` accepts new test names
|
||||
- Check `ci/Dockerfile.*` for any required updates
|
||||
|
||||
4. **Source File Review**
|
||||
- Deep inspection of SituationMap subdirectories
|
||||
- Verify all Qt5→Qt6 API migrations are complete
|
||||
- Check for any remaining deprecated API usage
|
||||
|
||||
## Files Modified
|
||||
|
||||
1. `qt6-after/qt6-migrated-legatus/new_docker_build.sh` (+49 lines)
|
||||
2. `qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/CMakeLists.txt` (+5 lines)
|
||||
3. `qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsFileDialog/CMakeLists.txt` (+5 lines)
|
||||
|
||||
## Commit Reference
|
||||
|
||||
```
|
||||
commit cdb8c754e
|
||||
Author: [Your Name]
|
||||
Date: [Current Date]
|
||||
|
||||
Add GROUP5 build configuration and CTest registration for Viewer module
|
||||
|
||||
- Add GROUP5_TARGETS array with 7 Viewer module targets to new_docker_build.sh
|
||||
- Add BUILD_GRANTLEE support throughout build script (help, env vars, cmake invocation)
|
||||
- Fix duplicate BUILD_GROUP4 default in container script section
|
||||
- Register LtsDataViewTest with CTest in LtsDataView/CMakeLists.txt
|
||||
- Register LtsFileDialogTest with CTest in LtsFileDialog/CMakeLists.txt
|
||||
- Update help text to document --group5/--no-group5 and --grantlee/--no-grantlee options
|
||||
- Set BUILD_GROUP5=OFF and BUILD_GRANTLEE=ON as defaults
|
||||
|
||||
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Report Generated**: $(date)
|
||||
**Migration Phase**: Infrastructure Configuration Complete
|
||||
**Next Phase**: Docker Validation and Testing
|
||||
Reference in new issue
Block a user