WIP: Build fixes und EXTERNAL_DEPENDENCIES.md
This commit is contained in:
300 files changed
+983
-417
No files matched your search
@@ -0,0 +1,174 @@
|
||||
# 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
|
||||
Reference in new issue
Block a user