3.7 KiB
3.7 KiB
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_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
#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
# 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
#ifdef BUILD_WITH_EXTERNAL_DDS
#include <dds/core/types.hpp>
// DDS-spezifische Typen: ChargeType, GearClass, Dtc, Marker, Ftc, etc.
#endif
STUB-Implementation (ohne DDS)
#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
# GeographicLib finden
find_package(GeographicLib REQUIRED)
target_link_libraries(your_target PRIVATE
GeographicLib::GeographicLib
)
4. Grantlee
Pfad: ./external/grantlee/
Status: ✅ Vorhanden und gebaut
Integration
# 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)
- GeographicLib
- Grantlee
- 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:
- Ins Image kopiert werden (für CI)
- Als Volume gemounted werden (für lokale Tests)
- Heruntergeladen werden während des Builds
Beispiel Dockerfile-Erweiterung
# 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
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)
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