# Externe Dependencies - Qt6 Migration ## Übersicht Diese Datei dokumentiert alle externen Dependencies, die für den Qt6-Build benötigt werden. Die Integration erfolgt schrittweise mit BUILD_GUARDs statt STUBs. --- ## 1. ArcGIS Maps SDK for Qt **Pfad**: `./external/ArcGIS/MapsSDK_Qt_300.0.0/` **Version**: 300.0.0 **Status**: ✅ Vorhanden, im Build integriert ### Integration im Build ```cmake # CMAKE_PREFIX_PATH erweitern list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/external/ArcGIS/MapsSDK_Qt_300.0.0") # ArcGIS-Bibliotheken verlinken target_link_libraries(your_target PRIVATE ArcGISRuntime ) ``` ### BUILD_GUARD ```cpp #ifdef BUILD_WITH_ARCGIS #include "ArcGISRuntime.h" // ArcGIS-spezifischer Code #endif ``` --- ## 2. RTI Connext DDS **Pfad**: `./external/rti_connext_dds-7.7.0/` **Version**: 7.7.0 **Status**: ✅ Vorhanden, BUILD_WITH_EXTERNAL_DDS Guard implementiert ### Lizenz - **Datei**: `~/swy/sandbox/rti_license.dat` - **Typ**: RTI Entwicklerlizenz (leere Datei vom Installer) - **Integration**: Lizenz muss zur Build-Zeit verfügbar sein ### Integration im Build ```cmake # RTI Connext DDS finden set(RTI_CONNEXTDDS_DIR "${CMAKE_SOURCE_DIR}/external/rti_connext_dds-7.7.0") find_package(RTIConnextDDS REQUIRED) # Bibliotheken verlinken target_link_libraries(your_target PRIVATE rti_connext_dds::core rti_connext_dds::infrastructure ) ``` ### BUILD_GUARD ```cpp #ifdef BUILD_WITH_EXTERNAL_DDS #include // DDS-spezifische Typen: ChargeType, GearClass, Dtc, Marker, Ftc, etc. #endif ``` ### STUB-Implementation (ohne DDS) ```cpp #ifndef BUILD_WITH_EXTERNAL_DDS // Primitive Typen statt DDS-Enums using ChargeType = int; using GearClass = int; // etc. #endif ``` --- ## 3. GeographicLib **Pfad**: `./external/GeographicLib/` **Status**: ✅ Vorhanden und gebaut ### Integration ```cmake # GeographicLib finden find_package(GeographicLib REQUIRED) target_link_libraries(your_target PRIVATE GeographicLib::GeographicLib ) ``` --- ## 4. Grantlee **Pfad**: `./external/grantlee/` **Status**: ✅ Vorhanden und gebaut ### Integration ```cmake # Grantlee finden find_package(Grantlee5 REQUIRED COMPONENTS templates texttags) target_link_libraries(your_target PRIVATE Grantlee5::Templates Grantlee5::TextTags ) ``` --- ## Schrittweise Integration ### Phase 1: Basis-Dependencies (✅ abgeschlossen) - [x] GeographicLib - [x] Grantlee - [x] BUILD_WITH_EXTERNAL_DDS Guard-System ### Phase 2: ArcGIS Integration (🔄 in Arbeit) - [ ] CMake-Integration im Haupt-Build - [ ] Alle ArcGIS-Uses mit Guards versehen - [ ] Build ohne ArcGIS testen ### Phase 3: RTI DDS Integration (📋 geplant) - [ ] CMake-Integration im Haupt-Build - [ ] Lizenz-Handling im Build-System - [ ] Alle DDS-Uses mit Guards versehen - [ ] Build ohne DDS testen --- ## Docker-Integration Für den Docker-Build müssen externe Dependencies entweder: 1. **Ins Image kopiert** werden (für CI) 2. **Als Volume gemounted** werden (für lokale Tests) 3. **Heruntergeladen** werden während des Builds ### Beispiel Dockerfile-Erweiterung ```dockerfile # Externe Dependencies kopieren COPY external/ /opt/external/ # Pfade setzen ENV CMAKE_PREFIX_PATH="/opt/external/ArcGIS/MapsSDK_Qt_300.0.0;/opt/external/rti_connext_dds-7.7.0" ``` --- ## Build-Optionen ### Mit allen Dependencies ```bash cmake -S . -B build \ -DBUILD_WITH_EXTERNAL_DDS=ON \ -DBUILD_WITH_ARCGIS=ON \ -DCMAKE_PREFIX_PATH="/path/to/external/ArcGIS;/path/to/external/rti_connext_dds" ``` ### Ohne externe Dependencies (STUB-Modus) ```bash cmake -S . -B build \ -DBUILD_WITH_EXTERNAL_DDS=OFF \ -DBUILD_WITH_ARCGIS=OFF ``` --- **Erstellt**: 2026-08-21 **Letzte Aktualisierung**: 2026-08-21 **Status**: Dokumentiert für schrittweise Integration