diff --git a/MIGRATION_STATUS.md b/MIGRATION_STATUS.md index 25a1657e7..8f571945d 100644 --- a/MIGRATION_STATUS.md +++ b/MIGRATION_STATUS.md @@ -1,8 +1,9 @@ -# Qt5/C++11 to Qt6/C++23 Migration Status +# Qt5/C++11 to Qt6/C++17 Migration Status **Datum**: 2026-09-30 **Submodule Branch**: `feature/qt6-migration-basis-modules` @ d176b5e -**Docker-Image**: `migration-pipeline:ubuntu26.04` +**Docker-Image**: `migration-pipeline:ubuntu26.04` +**C++ Standard**: C++17 (⚠️ RTI 7.7 kompatibel nur mit C++17, NICHT C++23) --- @@ -11,7 +12,7 @@ | Bereich | Status | BUILD_RTI=OFF | BUILD_RTI=ON | Notes | |---------|--------|---------------|--------------|-------| | **Lts/Common** | ✅ Vollständig | ✅ Build OK | ✅ Configure OK | Tests: 1/1 bestanden | -| **Lts/DDS** | 🟡 Struktur vorhanden | ✅ Configure OK | ✅ Configure OK | Target-Kollisionen behoben | +| **Lts/DDS** | 🟡 DTC-Generation | ⚠️ 45 Fehler | ⚠️ 45 Fehler | RTI Headers in MOC, ngl_codegen Build | | **Lts/Plugins** | 🟡 Teilweise | ⚠️ Build-Fehler | ⚠️ Build-Fehler | Externe Dependencies fehlen | | **Lts/Projects** | 🟡 Struktur vorhanden | ✅ Configure OK | ✅ Configure OK | Warning: jsonschema app nicht gefunden | | **Lts/Proxies** | 🟡 Struktur vorhanden | ✅ Configure OK | ✅ Configure OK | - | @@ -52,26 +53,58 @@ **Files**: `CMakeLists.txt` (Zeilen 254-285) +### 5. Grantlee Template Namespace Resolution (✅ Behoben) +**Problem**: DTC-Generierung erzeugte falsche Namespace-Referenzen (`Core::CurrentRunningState` statt `::Core::CurrentRunningState`) +**Fehler**: `'CurrentRunningState' in namespace 'Core' does not name a type` (45 Fehler) +**Lösung**: Absolute Namespace-Resolution in Grantlee Templates (`::{{ namespace }}::{{ dt.type }}`) +**Files**: `svc_dtc.h.grantlee`, `svc_dtc_impl.cpp.grantlee`, `svc_dtc_impl.h.grantlee` + +### 6. RTI Detection mit DDS_PATH (✅ Behoben) +**Problem**: CMake FindRTI.cmake fand RTI 7.7.0 nicht automatisch +**Lösung**: `DDS_PATH=/repo/external/rti_connext_dds-7.7.0/` setzen +**Status**: CMake findet RTI-Directory und Libraries (nddscore, nddsc, nddscpp2, rtiroutingservice) +**Files**: `cmake/FindRTI.cmake` (unterstützt DDS_PATH env var) + +### 7. codegen_base Library Built (✅ Behoben) +**Status**: codegen_base erfolgreich als Shared Library gebaut (19/19 Targets) +**Problem**: ngl_codegen Executable nicht als separates Target gefunden +**Ursache**: ngl_codegen benötigt BUILD_GRANTLEE=ON und Grantlee5::Templates (Qt5-basiert) +**Nächster Schritt**: BUILD_GRANTLEE-Strategie entscheiden (Qt5 Grantlee oder Qt6-Alternative) + --- ## ⚠️ Bekannte Probleme -### 1. Externe Dependencies fehlen (BUILD_RTI=ON) +### 1. ngl_codegen Build (🔴 Aktiv) +**Problem**: ngl_codegen Tool wird nicht gebaut +**Ursache**: BUILD_GRANTLEE=ON benötigt Grantlee5 (Qt5-basiert), nicht verfügbar in Qt6-Umgebung +**Optionen**: + - Option A: Grantlee5 im Docker-Image nachinstallieren (Qt5-Dependency) + - Option B: Code-Generation ohne Grantlee (manuell oder alternatives Template-System) + - Option C: ngl_codegen aus Qt5-Build kopieren +**Auswirkung**: DTC-Files können nicht neu generiert werden + +### 2. Externe Dependencies fehlen (BUILD_RTI=ON) **Fehler**: `/usr/bin/ld.bfd: cannot find -lsvcIsmCommon: No such file or directory` **Betroffene Module**: IsmShared, andere Module mit externen Libraries **Ursache**: Externe Libraries (svcIsmCommon, etc.) sind im Docker-Container nicht verfügbar **Workaround**: BUILD_RTI=OFF für Build-Tests ohne RTI-Dependencies **Lösung**: CI muss externe Dependencies bereitstellen oder optional verlinken -### 2. NGLLogger Include-Pfad Warning +### 3. NGLLogger Include-Pfad Warning **Warning**: `cc1plus: warning: /repo/build/Z/src/NGLLogger/Z/src/NGLLogger: No such file or directory` **Ursache**: Falscher Include-Pfad in CMake-Konfiguration **Status**: Kosmetisch, Build läuft trotzdem -### 3. jsonschema Application nicht gefunden +### 4. jsonschema Application nicht gefunden **Warning**: `Projects: application 'jsonschema' not found, cannot validate apps.json files` **Status**: Kosmetisch, beeinflusst Build nicht +### 5. RTI Include Paths für MOC +**Problem**: MOC benötigt beide RTI Include-Pfade (ndds/hpp UND ndds) +**Status**: CMAKE_AUTOMOC_INCLUDE_DIRECTORIES korrekt konfiguriert, vererbt RTI_INCLUDE_DIRS +**Verbleibende Fehler**: 45 DTC-Compilation errors trotz Template-Fix + --- ## 📝 Letzte Änderungen