RTI Target-Kollisionen behoben, QDebug operator<< für FileStatus

- CMakeLists.txt: ALIAS Targets nur für existierende RTI-Libraries (Zeilen 254-285)
- Keine INTERFACE-Placeholder für ddsftc/ddsfts/ddsconnector (Module definieren eigene Targets)
- flm_enums.hpp: QDebug operator<< für FileStatus enum class implementiert

BUILD_RTI=ON: Configure erfolgreich nach Target-Fix
This commit is contained in:
torsten committed 2026-08-30 12:34:39 +02:00
1 parent 851d47e114
commit a9c5b2181e
2 files changed
+24 -16

No files matched your search

+13 -9
View File
@@ -256,12 +256,17 @@ ENDIF(BUILD_RTI)
IF(BUILD_RTI AND TARGET RTI::nddsc)
ADD_LIBRARY(ddsc ALIAS RTI::nddsc)
ADD_LIBRARY(ddscore ALIAS RTI::nddscore)
ADD_LIBRARY(ddscpp ALIAS RTI::nddscpp)
ADD_LIBRARY(ddscpp2 ALIAS RTI::nddscpp2)
ADD_LIBRARY(nddsctesthelpers ALIAS RTI::nddsctesthelpers)
ADD_LIBRARY(ddsftc ALIAS RTI::ddsftc)
ADD_LIBRARY(ddsfts ALIAS RTI::ddsfts)
ADD_LIBRARY(ddsconnector ALIAS RTI::ddsconnector)
# Optionale Targets nur als ALIAS erstellen wenn verfügbar (RTI 7.x hat nicht alle Legacy-Bibliotheken)
# KEINE INTERFACE-Placeholder erstellen - Module müssen selbst mit fehlenden Targets umgehen
IF(TARGET RTI::nddscpp)
ADD_LIBRARY(ddscpp ALIAS RTI::nddscpp)
ENDIF()
IF(TARGET RTI::nddsctesthelpers)
ADD_LIBRARY(nddsctesthelpers ALIAS RTI::nddsctesthelpers)
ENDIF()
# HINWEIS: ddsftc, ddsfts, ddsconnector werden von Lts/DDS/FTC Modulen als INTERFACE Targets erstellt
# Hier KEINE ALIAS erstellen um Target-Kollisionen zu vermeiden
ELSE()
# BUILD_RTI=OFF: Leere Interface-Libraries als Platzhalter
ADD_LIBRARY(ddsc INTERFACE)
@@ -269,10 +274,9 @@ ELSE()
ADD_LIBRARY(ddscpp INTERFACE)
ADD_LIBRARY(ddscpp2 INTERFACE)
ADD_LIBRARY(nddsctesthelpers INTERFACE)
ADD_LIBRARY(ddsftc INTERFACE)
ADD_LIBRARY(ddsfts INTERFACE)
ADD_LIBRARY(ddsconnector INTERFACE)
ENDIF()
# HINWEIS: ddsftc, ddsfts, ddsconnector werden von Lts/DDS/FTC Modulen als INTERFACE Targets erstellt
# Hier KEINE Platzhalter erstellen um Target-Kollisionen zu vermeiden
ENDIF(BUILD_RTI AND TARGET RTI::nddsc)
ADD_DEFINITIONS(-DQT_USE_QSTRINGBUILDER)
ADD_DEFINITIONS(-DQT_NO_CAST_TO_ASCII)
@@ -4,18 +4,22 @@
// Für die Migration erstellen wir minimale Typ-Definitionen basierend auf flm_service.xml
#include <QtCore/QString>
#include <QtCore/QDebug>
namespace FileManagement
{
// Enums aus flm_service.xml
// Für BUILD_RTI=OFF: FileStatus als int, um direkte Vergleiche zu ermöglichen
#ifndef BUILD_RTI
using FileStatus = int;
constexpr int FileStatus_Valid = 0;
constexpr int FileStatus_Deleted = 1;
#else
// FileStatus als enum class für beide Build-Varianten (BUILD_RTI=ON/OFF)
enum class FileStatus : int { Valid = 0, Deleted = 1 };
#endif
// QDebug-Operator für FileStatus
inline QDebug operator<<(QDebug debug, FileStatus status)
{
QDebugStateSaver saver(debug);
debug.nospace() << "FileStatus::"
<< (status == FileStatus::Valid ? "Valid" : "Deleted");
return debug;
}
enum class FileCategory : int { Global = 1, Exercise = 2, User = 3 };