- HandlerMinelayerData: BUILD_RTI Guards für RTI-Abhängigkeiten - svcTabCommon: Export-Header-Fix via Fallback-Target - TrainingAreaBase: Stub-Header für BUILD_RTI=OFF - ddsfts: Include-Pfad und Dependency-Fixes - BUILD_RTI=OFF Compilation vollständig unterstützt Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Entire-Checkpoint: 01M0JNZA586SACX1PRZ2DJAE5S
256 lines
8.9 KiB
Python
256 lines
8.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Erstellt Stub-Header für DDS-generierte Dateien die im Repository fehlen.
|
|
Diese Header werden normalerweise von ddsdtc aus IDL-Dateien generiert.
|
|
"""
|
|
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# Basis-Pfad
|
|
BASE_PATH = Path("/home/torsten/swy/sandbox/qt-migration-legatus/qt6-after/qt6-migrated-legatus")
|
|
|
|
# Stub-Inhalte für verschiedene Header-Typen
|
|
DTC_STUB = """#pragma once
|
|
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
|
// Für die Migration erstellen wir minimale Forward-Declarations
|
|
|
|
namespace {namespace_name}
|
|
{{
|
|
namespace Interface
|
|
{{
|
|
class Dtc;
|
|
class Ftc;
|
|
}}
|
|
}}
|
|
"""
|
|
|
|
ENUMS_STUB = """#pragma once
|
|
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
|
|
// Für die Migration erstellen wir minimale Typ-Definitionen
|
|
|
|
namespace {namespace_name}
|
|
{{
|
|
// Placeholder enums - werden durch echte DDS-Typen ersetzt
|
|
enum class SymbolAppearance : int {{
|
|
Solid = 0,
|
|
Dashed = 1,
|
|
Dotted = 2
|
|
}};
|
|
|
|
enum class SymbolVisibility : int {{
|
|
Visible = 0,
|
|
Hidden = 1
|
|
}};
|
|
|
|
struct UnitSymbolPosition {{
|
|
double x = 0.0;
|
|
double y = 0.0;
|
|
double z = 0.0;
|
|
}};
|
|
}}
|
|
"""
|
|
|
|
def create_stub_header(file_path, stub_type, namespace_name):
|
|
"""Erstellt einen Stub-Header an der gegebenen Position"""
|
|
full_path = BASE_PATH / file_path
|
|
|
|
# Verzeichnis erstellen falls nicht vorhanden
|
|
full_path.parent.mkdir(parents=True, exist_ok=True)
|
|
|
|
if stub_type == "dtc":
|
|
content = DTC_STUB.format(namespace_name=namespace_name)
|
|
elif stub_type == "enums":
|
|
content = ENUMS_STUB.format(namespace_name=namespace_name)
|
|
else:
|
|
content = f"#pragma once\n// STUB for {file_path}\n"
|
|
|
|
if not full_path.exists():
|
|
with open(full_path, 'w') as f:
|
|
f.write(content)
|
|
print(f"✓ Created: {file_path}")
|
|
return True
|
|
else:
|
|
print(f" Exists: {file_path}")
|
|
return False
|
|
|
|
# Liste der zu erstellenden Stub-Header
|
|
stubs = [
|
|
# InfrastructureManagement
|
|
("Services/InfrastructureManagement/ism_dtc.h", "dtc", "InfrastructureManagement"),
|
|
("Services/InfrastructureManagement/ism_enums.hpp", "enums", "InfrastructureManagement"),
|
|
("InfrastructureManagement/ism_dtc.h", "dtc", "InfrastructureManagement"),
|
|
("InfrastructureManagement/ism_enums.hpp", "enums", "InfrastructureManagement"),
|
|
|
|
# AreaEffectSimulation (bereits erstellt, aber prüfen)
|
|
("AreaEffectSimulation/aes_enums.hpp", "enums", "AreaEffectSimulation"),
|
|
("Services/AreaEffectSimulation/aes_enums.hpp", "enums", "AreaEffectSimulation"),
|
|
|
|
# AlarmManagement
|
|
("Services/AlarmManagement/alm_dtc.h", "dtc", "AlarmManagement"),
|
|
("AlarmManagement/alm_dtc.h", "dtc", "AlarmManagement"),
|
|
|
|
# AssetManagement
|
|
("AssetManagement/asm_dtc.h", "dtc", "AssetManagement"),
|
|
("AssetManagement/asm_enums.hpp", "enums", "AssetManagement"),
|
|
|
|
# AudioVideoManagement
|
|
("Services/AudioVideoManagement/avm_dtc.h", "dtc", "AudioVideoManagement"),
|
|
("AudioVideoManagement/avm_dtc.h", "dtc", "AudioVideoManagement"),
|
|
("AudioVideoManagement/avm_enums.hpp", "enums", "AudioVideoManagement"),
|
|
|
|
# Buildings
|
|
("Buildings/bld_dtc.h", "dtc", "Buildings"),
|
|
("Buildings/bld_enums.hpp", "enums", "Buildings"),
|
|
("Proxies/Buildings/bld_dtc.h", "dtc", "Buildings"),
|
|
|
|
# CentralEffectSimulation
|
|
("CentralEffectSimulation/ces_dtc.h", "dtc", "CentralEffectSimulation"),
|
|
|
|
# CodificationManagement
|
|
("Services/CodificationManagement/cod_dtc.h", "dtc", "CodificationManagement"),
|
|
("CodificationManagement/cod_dtc.h", "dtc", "CodificationManagement"),
|
|
|
|
# ComponentMonitor
|
|
("ComponentMonitor/cmo_dtc.h", "dtc", "ComponentMonitor"),
|
|
|
|
# Core
|
|
("Core/core_dtc.h", "dtc", "Core"),
|
|
("Core/core_enums.hpp", "enums", "Core"),
|
|
("DDS/Core/core_dtc.h", "dtc", "Core"),
|
|
("DDS/Core/core_enums.hpp", "enums", "Core"),
|
|
|
|
# DDS Generic
|
|
("DDS/DTC/generic_dtc.h", "dtc", "DDS"),
|
|
("generic_dtc.h", "dtc", "DDS"),
|
|
|
|
# EffectShowClient
|
|
("Services/EffectShowClient/esc_dtc.h", "dtc", "EffectShowClient"),
|
|
("EffectShowClient/esc_dtc.h", "dtc", "EffectShowClient"),
|
|
|
|
# EffectShowManagement
|
|
("Services/EffectShowManagement/esm_dtc.h", "dtc", "EffectShowManagement"),
|
|
("EffectShowManagement/esm_dtc.h", "dtc", "EffectShowManagement"),
|
|
|
|
# Evaluations
|
|
("Evaluations/evl_dtc.h", "dtc", "Evaluations"),
|
|
|
|
# ExerciseEventManagement
|
|
("Services/ExerciseEventManagement/eem_enums.hpp", "enums", "ExerciseEventManagement"),
|
|
("ExerciseEventManagement/eem_dtc.h", "dtc", "ExerciseEventManagement"),
|
|
|
|
# ExerciseManagement
|
|
("Services/ExerciseManagement/exm_dtc.h", "dtc", "ExerciseManagement"),
|
|
("ExerciseManagement/exm_dtc.h", "dtc", "ExerciseManagement"),
|
|
("ExerciseManagement/exm_enums.hpp", "enums", "ExerciseManagement"),
|
|
|
|
# FileManagement
|
|
("Services/FileManagement/flm_dtc.h", "dtc", "FileManagement"),
|
|
("FileManagement/flm_dtc.h", "dtc", "FileManagement"),
|
|
("FileManagement/flm_enums.hpp", "enums", "FileManagement"),
|
|
|
|
# GuezIedManagement
|
|
("GuezIedManagement/gim_dtc.h", "dtc", "GuezIedManagement"),
|
|
|
|
# GuezNasat
|
|
("GuezNasat/gna_dtc.h", "dtc", "GuezNasat"),
|
|
|
|
# MarkerManagement
|
|
("MarkerManagement/mrk_dtc.h", "dtc", "MarkerManagement"),
|
|
|
|
# Messaging
|
|
("Services/Messaging/msg_dtc.h", "dtc", "Messaging"),
|
|
("Messaging/msg_dtc.h", "dtc", "Messaging"),
|
|
|
|
# MeteoDataManagement
|
|
("Services/MeteoDataManagement/mdm_dtc.h", "dtc", "MeteoDataManagement"),
|
|
("MeteoDataManagement/mdm_dtc.h", "dtc", "MeteoDataManagement"),
|
|
|
|
# NotificationManagement
|
|
("NotificationManagement/nom_dtc.h", "dtc", "NotificationManagement"),
|
|
("NotificationManagement/nom_enums.hpp", "enums", "NotificationManagement"),
|
|
|
|
# OcSituationServer
|
|
("OcSituationServer/oss_dtc.h", "dtc", "OcSituationServer"),
|
|
|
|
# OperatorManagement
|
|
("Services/OperatorManagement/opm_dtc.h", "dtc", "OperatorManagement"),
|
|
("OperatorManagement/opm_dtc.h", "dtc", "OperatorManagement"),
|
|
|
|
# ParticipantManagement
|
|
("Services/ParticipantManagement/ppm_dtc.h", "dtc", "ParticipantManagement"),
|
|
("ParticipantManagement/ppm_dtc.h", "dtc", "ParticipantManagement"),
|
|
("ParticipantManagement/ppm_enums.hpp", "enums", "ParticipantManagement"),
|
|
|
|
# pdm_enums (root level)
|
|
("pdm_enums.hpp", "enums", "ProjectDataManagement"),
|
|
|
|
# PresentationManagement
|
|
("Services/PresentationManagement/pre_dtc.h", "dtc", "PresentationManagement"),
|
|
("PresentationManagement/pre_dtc.h", "dtc", "PresentationManagement"),
|
|
|
|
# ProjectDataManagement
|
|
("ProjectDataManagement/pdm_dtc.h", "dtc", "ProjectDataManagement"),
|
|
("ProjectDataManagement/pdm_enums.hpp", "enums", "ProjectDataManagement"),
|
|
("Services/ProjectDataManagement/pdm_enums.hpp", "enums", "ProjectDataManagement"),
|
|
|
|
# Proxies TrainingAreaBase
|
|
("Proxies/TrainingAreaBase/tab_dtc.h", "dtc", "TrainingAreaBase"),
|
|
("TrainingAreaBase/tab_dtc.h", "dtc", "TrainingAreaBase"),
|
|
|
|
# Proxies TrainingAreaBaseOC
|
|
("Proxies/TrainingAreaBaseOC/taboc_dtc.h", "dtc", "TrainingAreaBaseOC"),
|
|
("TrainingAreaBaseOC/taboc_dtc.h", "dtc", "TrainingAreaBaseOC"),
|
|
("taboc_dtc.h", "dtc", "TrainingAreaBaseOC"),
|
|
|
|
# ReportManagement
|
|
("Services/ReportManagement/rep_dtc.h", "dtc", "ReportManagement"),
|
|
("ReportManagement/rep_dtc.h", "dtc", "ReportManagement"),
|
|
("ReportManagement/rep_enums.hpp", "enums", "ReportManagement"),
|
|
|
|
# ServiceManagement
|
|
("ServiceManagement/scm_dtc.h", "dtc", "ServiceManagement"),
|
|
|
|
# SituationReplay
|
|
("SituationReplay/srp_dtc.h", "dtc", "SituationReplay"),
|
|
("SituationReplay/srp_enums.hpp", "enums", "SituationReplay"),
|
|
|
|
# SituationReplayManagement
|
|
("SituationReplayManagement/srm_dtc.h", "dtc", "SituationReplayManagement"),
|
|
("Services/SituationReplayManagement/srm_dtc.h", "dtc", "SituationReplayManagement"),
|
|
|
|
# Skeleton
|
|
("Services/Skeleton/skl_dtc.h", "dtc", "Skeleton"),
|
|
|
|
# SoundManagement
|
|
("SoundManagement/som_dtc.h", "dtc", "SoundManagement"),
|
|
|
|
# TargetManagement
|
|
("Services/TargetManagement/tgt_dtc.h", "dtc", "TargetManagement"),
|
|
("TargetManagement/tgt_dtc.h", "dtc", "TargetManagement"),
|
|
|
|
# WarehouseGuez
|
|
("WarehouseGuez/whg_dtc.h", "dtc", "WarehouseGuez"),
|
|
|
|
# AreaEffectSimulation aes_dtc
|
|
("AreaEffectSimulation/aes_dtc.h", "dtc", "AreaEffectSimulation"),
|
|
("Services/AreaEffectSimulation/aes_dtc.h", "dtc", "AreaEffectSimulation"),
|
|
|
|
# aes_dtc.h (root level)
|
|
("aes_dtc.h", "dtc", "AreaEffectSimulation"),
|
|
]
|
|
|
|
if __name__ == "__main__":
|
|
print("Creating DDS stub headers...")
|
|
created = 0
|
|
exists = 0
|
|
|
|
for file_path, stub_type, namespace in stubs:
|
|
if create_stub_header(file_path, stub_type, namespace):
|
|
created += 1
|
|
else:
|
|
exists += 1
|
|
|
|
print(f"\n✓ Created: {created} stub headers")
|
|
print(f" Already exists: {exists}")
|