Files
qt-migration-legatus/EXTERNAL_DEPENDENCIES.md
T

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:

  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

# 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