174 lines
3.7 KiB
Markdown
174 lines
3.7 KiB
Markdown
# 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/core/types.hpp>
|
|
// 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 |