Entire-Metadata: .entire/metadata/fb87247f-2a75-407e-b336-cbc8c20ba5a6 Entire-Session: fb87247f-2a75-407e-b336-cbc8c20ba5a6 Entire-Strategy: manual-commit
7.7 KiB
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:
situationMapCommon- Common SituationMap utilitiesadvancedSymbology- Advanced symbology renderingadvancedSymbologyXML- XML-based symbologyadvancedSymbologyXML_Gui- GUI components for XML symbologyLtsDataView- Data visualization component (BUILD_RTI conditional)LtsFileDialog- File dialog utilitiesLtsReportDisplay- Report display component
Changes Made
1. Build Script Updates (new_docker_build.sh)
Added GROUP5 Configuration:
--group5/--no-group5command-line optionBUILD_GROUP5environment variable supportGROUP5_TARGETSarray with all 7 Viewer targets- Help text documentation
Added BUILD_GRANTLEE Support:
--grantlee/--no-grantleecommand-line optionBUILD_GRANTLEEenvironment variable (default: ON)- CMake invocation with
-DBUILD_GRANTLEEflag - Container script defaults
Bug Fixes:
- Fixed duplicate
BUILD_GROUP4=OFFdefault in container script section
2. CTest Integration
LtsDataView/CMakeLists.txt:
if(BUILD_TESTING)
add_test(NAME LtsDataViewTest COMMAND $<TARGET_FILE:LtsDataViewTest>)
endif()
LtsFileDialog/CMakeLists.txt:
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
cd qt-migration-legatus/qt6-after/qt6-migrated-legatus
BUILD_RTI=ON BUILD_GRANTLEE=ON ./new_docker_build.sh --group5
Direct CMake Build Command
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 useQScreenin Qt6QRegExp→ Should useQRegularExpressionin 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 declarationmap_ftc.h- SituationMap::Dds::Ftc forward declaration
Status: Properly located in allowed directory, not in service directories.
Code Generation
BUILD_GRANTLEE Integration:
- Root
CMakeLists.txtline 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 ✓
- Repository state inspection
- Branch verification (
feature/migrate-lts-viewer.md) - Migration prompt requirements analysis
- Qt5 vs Qt6 directory structure comparison
- Source file inventory (524→136 files in SituationMap)
- Qt5 API usage pattern identification
- BUILD_RTI conditional verification (already present)
- BUILD_GRANTLEE option verification
- GROUP5 configuration added to
new_docker_build.sh - BUILD_GRANTLEE support added to build script
- Duplicate BUILD_GROUP4 default fixed
- Bash syntax validation passed
- Help output tested
- CTest registration for LtsDataViewTest
- CTest registration for LtsFileDialogTest
- Git commit created
Pending
- Docker build validation with
--group5option - 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
-
Docker Validation Build
cd qt-migration-legatus/qt6-after/qt6-migrated-legatus BUILD_RTI=ON BUILD_GRANTLEE=ON ./new_docker_build.sh --group5 -
CTest Execution
- Verify LtsDataViewTest runs successfully
- Verify LtsFileDialogTest runs successfully
- Check test output for any failures
-
Jenkins Compatibility
- Verify
ci/check_pr_policies.pyaccepts new test names - Check
ci/Dockerfile.*for any required updates
- Verify
-
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
qt6-after/qt6-migrated-legatus/new_docker_build.sh(+49 lines)qt6-after/qt6-migrated-legatus/Lts/Viewer/LtsDataView/CMakeLists.txt(+5 lines)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