# Qt6 Migration Status - Legatus ## Zusammenfassung (Stand: 2026-08-18) ### ✅ Erfolgreich abgeschlossene Arbeiten 1. **Docker-Infrastructure** - Image `migration-pipeline:ubuntu26.04` mit Qt 6.10.2, CMake, Ninja - RTI Connext dauerhaft installiert (nicht gemappt) - Ubuntu 26.04 Basis 2. **Build-System** - **1940 Targets erfolgreich gebaut** mit BUILD_RTI=OFF - 3380 CMake-Targets insgesamt verfügbar - FilterManagement-Plugins temporär ausgeschlossen (BUILD_RTI-abhängig) 3. **Qt6-Migrationen** - 513 CMakeLists.txt in Lts/ migriert - BUILD_RTI Guards in LtsSession implementiert (6 Dateien) - Export-Header Stubs erstellt (4 Dateien): - `include/GuezNasat/svcgnacommon_export.h` - `include/AlarmManagement/svcalmcommon_export.h` - `include/MarkerManagement/svcmrkcommon_export.h` - `include/GuezNasat/svcgnaapi_export.h` 4. **Korrekturen** - Include-Pfade korrigiert (resource_path.h, logger.h) - QStringRef → QString migriert - Qt6::Gui Dependencies hinzugefügt - MOC-Probleme gefixt (staticMetaObject, override final) - Pfad von `qt6-migrated-benchmark` → `qt6-migrated-legatus` korrigiert ### ⚠️ Bekannte Einschränkungen 1. **Policy-Check** (`ci/check_pr_policies.py`) - Erwartet Test-Dateien für alle geänderten C++-Dateien - Bei 14.457 geänderten Dateien nicht praktikabel für initiale Migration - **Empfehlung**: Policy-Check für Migrations-Branch deaktivieren oder DTC-Dateien ausnehmen 2. **Tests** - 11 Tests registriert, aber nicht gebaut (BUILD_RTI=OFF) - Tests benötigen RTI Connext Runtime - **Nächster Schritt**: BUILD_RTI=ON Build validieren 3. **FilterManagement-Plugins** - Temporär vom Build ausgeschlossen - Werden nach BUILD_RTI=ON Validierung wieder eingebunden ### 📊 Migrationsfortschritt | Bereich | Status | Details | |---------|--------|---------| | Lts/Common | ✅ Vollständig | Build erfolgreich | | Lts/DDS | ✅ Struktur | BUILD_RTI Guards implementiert | | Lts/Plugins | 🟡 Teilweise | FilterManagement ausgeschlossen | | Lts/Services | 🟡 Teilweise | Export-Header Stubs erstellt | | Lts/Proxies | 🟡 Teilweise | Include-Pfade korrigiert | | TetraIF | 🟡 Teilweise | Migration läuft | | Z-Module | 🟡 Teilweise | nglwidgets, QtSingleApplication fertig | ### 🔄 Nächste Schritte 1. **BUILD_RTI=ON Validierung** (höchste Priorität) ```bash docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \ cmake -S /repo/qt6-after/qt6-migrated-legatus -B /repo/build-rti \ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DBUILD_RTI=ON docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \ cmake --build /repo/build-rti --parallel ``` 2. **FilterManagement-Plugins wieder einbinden** - Nach erfolgreichem BUILD_RTI=ON Build - CMakeLists.txt anpassen 3. **Tests mit RTI ausführen** ```bash docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \ ctest --test-dir /repo/build-rti --output-on-failure ``` 4. **Policy-Check Anpassung** - DTC-Dateien von Test-Pflicht ausnehmen - Oder nur für PRs gegen main-Branch aktivieren ### 📝 Wichtige Dateien - `qt6-after/qt6-migrated-legatus/` - Zielverzeichnis der Migration - `qt5-before/qt5-legatus-legacy/` - Quellverzeichnis (Submodule) - `app/Dockerfile` - Docker-Image Definition - `ci/check_pr_policies.py` - Policy-Check Script ### 🚀 Build-Commands ```bash # Configure (BUILD_RTI=OFF) docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \ cmake -S /repo/qt6-after/qt6-migrated-legatus -B /repo/build \ -G Ninja -DCMAKE_BUILD_TYPE=Debug # Build docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \ cmake --build /repo/build --parallel # Configure mit RTI docker run --rm -v $(pwd):/repo migration-pipeline:ubuntu26.04 \ cmake -S /repo/qt6-after/qt6-migrated-legatus -B /repo/build-rti \ -G Ninja -DCMAKE_BUILD_TYPE=Debug -DBUILD_RTI=ON ``` --- **Letzter Build**: Erfolgreich (1940 Targets) **Nächster Meilenstein**: BUILD_RTI=ON Validierung