Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f00e35a45 | ||
|
|
28a1819330 | ||
|
|
1ca9f74c6f | ||
|
|
c397aa12f5 | ||
|
|
3d91d27c49 | ||
|
|
59d1ef5b61 | ||
|
|
635f063824 | ||
|
|
360e981042 | ||
|
|
92f1f29893 | ||
|
|
0459d64ef8 |
No files matched your search
@@ -14,3 +14,4 @@ build/
|
||||
build2/
|
||||
.envrc
|
||||
build4
|
||||
deb_build_tmp
|
||||
@@ -16,7 +16,9 @@ else()
|
||||
endif()
|
||||
|
||||
# Add only existing subdirectories to allow partial checkouts / incremental migration
|
||||
set(LTS_SUBDIRS Tools Application DDS Common Services Proxies Plugins Viewer Projects)
|
||||
# Release 2 scope: Tools, DDS, Common, Services (minimal), Proxies (TrainingAreaBase only), Plugins (Styles only for LtsWidgets dependency)
|
||||
# Excluded: Application, Viewer, Projects, most Plugins (not in Release 2)
|
||||
set(LTS_SUBDIRS Tools DDS Common Services Proxies Plugins)
|
||||
foreach(dir IN LISTS LTS_SUBDIRS)
|
||||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}")
|
||||
# Use guarded add so top-level MIGRATE_MODULE can restrict which Lts subdirs are included
|
||||
|
||||
@@ -4,30 +4,22 @@
|
||||
# $Author$
|
||||
#
|
||||
|
||||
# Release 2 Common modules (S set: 16 modules)
|
||||
ADD_SUBDIRECTORY(CodeGen)
|
||||
ADD_SUBDIRECTORY(httq)
|
||||
ADD_SUBDIRECTORY(LtsAppDescriptor)
|
||||
ADD_SUBDIRECTORY(LtsAppManager)
|
||||
ADD_SUBDIRECTORY(LtsCommandLineParser)
|
||||
ADD_SUBDIRECTORY(LtsCoordinate)
|
||||
ADD_SUBDIRECTORY(LtsCoordTrans)
|
||||
ADD_SUBDIRECTORY(LtsCoordinate)
|
||||
ADD_SUBDIRECTORY(LtsElevation)
|
||||
ADD_SUBDIRECTORY(LtsLicence)
|
||||
ADD_SUBDIRECTORY(LtsLogin)
|
||||
ADD_SUBDIRECTORY(LtsMultiMonitor)
|
||||
ADD_SUBDIRECTORY(LtsNotification)
|
||||
ADD_SUBDIRECTORY(LtsPluginManager)
|
||||
ADD_SUBDIRECTORY(LtsPrinting)
|
||||
ADD_SUBDIRECTORY(LtsProjectionWorkstation)
|
||||
ADD_SUBDIRECTORY(LtsRestClient)
|
||||
ADD_SUBDIRECTORY(LtsScriptTimeline)
|
||||
ADD_SUBDIRECTORY(LtsSerialPortQuerry)
|
||||
ADD_SUBDIRECTORY(LtsSession)
|
||||
ADD_SUBDIRECTORY(LtsTimeline)
|
||||
ADD_SUBDIRECTORY(LtsUtils)
|
||||
ADD_SUBDIRECTORY(LtsVirtualKeyboard)
|
||||
ADD_SUBDIRECTORY(LtsWebSocket)
|
||||
ADD_SUBDIRECTORY(LtsWidgets)
|
||||
ADD_SUBDIRECTORY(PluginInterfaces)
|
||||
ADD_SUBDIRECTORY(ProjectConfig)
|
||||
ADD_SUBDIRECTORY(TopicEditorBase)
|
||||
# Excluded from Release 2: LtsAppManager, LtsCoordinate, LtsLogin, LtsMultiMonitor, LtsPrinting, LtsProjectionWorkstation, LtsScriptTimeline, LtsTimeline, LtsVirtualKeyboard, PluginInterfaces
|
||||
@@ -23,85 +23,6 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include/LtsSession/)
|
||||
# Add TopicEditorBase stub headers
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include/TopicEditorBase/)
|
||||
|
||||
ADD_SUBDIRECTORY(AdvancedSymbology)
|
||||
ADD_SUBDIRECTORY(AppStarter)
|
||||
ADD_SUBDIRECTORY(AreaEffectSimulation)
|
||||
ADD_SUBDIRECTORY(AssetManagement)
|
||||
ADD_SUBDIRECTORY(AudioVideoManagement) # uses old ifc !
|
||||
ADD_SUBDIRECTORY(Battery)
|
||||
ADD_SUBDIRECTORY(Buildings)
|
||||
ADD_SUBDIRECTORY(BuildingViewer) # uses ZW connections (uses sql, ace, ..)
|
||||
ADD_SUBDIRECTORY(CentralEffectSimulation)
|
||||
IF(BUILD_CODIFICATION)
|
||||
ADD_SUBDIRECTORY(CodificationManagement)
|
||||
ADD_SUBDIRECTORY(CodificationManagement/Test)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(CollateralDamageSimulation)
|
||||
ADD_SUBDIRECTORY(EffectManagement)
|
||||
ADD_SUBDIRECTORY(EffectShowClient)
|
||||
ADD_SUBDIRECTORY(EffectShowManagement)
|
||||
ADD_SUBDIRECTORY(Evaluations)
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(ExerciseManagement)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(FileManagement)
|
||||
IF(BUILD_FILTERMANAGEMENT)
|
||||
ADD_SUBDIRECTORY(FilterManagement)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(FreeSpace)
|
||||
ADD_SUBDIRECTORY(GuezIedManagement)
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(GuezNasat)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(InfrastructureManagement) # ResMgt uses nglwidgets => NGLTreeModel
|
||||
ADD_SUBDIRECTORY(MarkerManagement)
|
||||
ADD_SUBDIRECTORY(Messaging)
|
||||
ADD_SUBDIRECTORY(MeteoDataManagement)
|
||||
ADD_SUBDIRECTORY(NmeaManagement)
|
||||
ADD_SUBDIRECTORY(NotificationManagement)
|
||||
ADD_SUBDIRECTORY(OcBaseDownload)
|
||||
ADD_SUBDIRECTORY(OcSituationClient)
|
||||
ADD_SUBDIRECTORY(OnlineReports)
|
||||
ADD_SUBDIRECTORY(OperatorManagement)
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(ParticipantManagement) # includes ParticipantOrgChart (conditionally built)
|
||||
ENDIF()
|
||||
# PlanEditor requires WebEngine + ArcGIS - skip for Qt6 migration baseline
|
||||
IF(BUILD_PLUGINS_PLANEDITOR)
|
||||
ADD_SUBDIRECTORY(PlanEditor)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(PlanOverlays)
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(PresentationManagement)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(ProjectDataManagement)
|
||||
ADD_SUBDIRECTORY(ProjectionWorkstation)
|
||||
ADD_SUBDIRECTORY(ReportManagement)
|
||||
ADD_SUBDIRECTORY(SAAs)
|
||||
ADD_SUBDIRECTORY(ScreenRecording)
|
||||
ADD_SUBDIRECTORY(ServiceManagement)
|
||||
# ServiceMonitor requires WebEngine - skip for Qt6 migration baseline
|
||||
IF(BUILD_PLUGINS_SERVICEMONITOR)
|
||||
ADD_SUBDIRECTORY(ServiceMonitor)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(SituationMapPlugin)
|
||||
ADD_SUBDIRECTORY(SituationReplay)
|
||||
ADD_SUBDIRECTORY(SituationReplayManagement)
|
||||
# Release 2: Only Styles plugin needed for LtsWidgets dependency (TabBarTabStyle)
|
||||
ADD_SUBDIRECTORY(Styles)
|
||||
ADD_SUBDIRECTORY(TargetManagement)
|
||||
ADD_SUBDIRECTORY(Timeline)
|
||||
ADD_SUBDIRECTORY(TrainingAreaBase)
|
||||
ADD_SUBDIRECTORY(TakeHomePackageManager)
|
||||
ADD_SUBDIRECTORY(TrainingAreaBaseOC)
|
||||
ADD_SUBDIRECTORY(AlarmManagement)
|
||||
ADD_SUBDIRECTORY(DeveloperTools)
|
||||
ADD_SUBDIRECTORY(ComponentMonitor)
|
||||
#ADD_SUBDIRECTORY(ObserverController)
|
||||
ADD_SUBDIRECTORY(VirtualKeyboard)
|
||||
IF(GUEZ_MODE)
|
||||
ADD_SUBDIRECTORY(WarehouseManagement)
|
||||
ENDIF()
|
||||
# OnlineHelp requires WebEngine - skip for Qt6 migration baseline
|
||||
IF(BUILD_PLUGINS_ONLINEHELP)
|
||||
ADD_SUBDIRECTORY(OnlineHelp)
|
||||
ENDIF()
|
||||
# Excluded from Release 2: All other plugins (AdvancedSymbology, AppStarter, AreaEffectSimulation, etc.)
|
||||
@@ -4,30 +4,7 @@
|
||||
# $Author:
|
||||
#
|
||||
|
||||
OPTION(BUILD_SVC_HLA "Build service HighLevelArchitecture (default: OFF)" OFF)
|
||||
OPTION(BUILD_WLS "Build service WirelessLocationSystem (default: OFF)" OFF)
|
||||
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(Buildings)
|
||||
ADD_SUBDIRECTORY(WarehouseManagement)
|
||||
ENDIF()
|
||||
|
||||
# TrainingAreaBase is a core dependency - always include it when Proxies is included
|
||||
# Release 2 Proxies modules (S set: TrainingAreaBase only)
|
||||
# TrainingAreaBase is a core dependency from first-release scope - always include it
|
||||
ADD_SUBDIRECTORY(TrainingAreaBase) # sql
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(TrainingAreaBaseOC)
|
||||
ENDIF()
|
||||
|
||||
ADD_SUBDIRECTORY(CombatNetRadio)
|
||||
ADD_SUBDIRECTORY(DifferentialGPS)
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(GuezNasat) # rpcgen
|
||||
ENDIF()
|
||||
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(ComponentMonitor)
|
||||
ENDIF()
|
||||
|
||||
IF (BUILD_WLS)
|
||||
ADD_SUBDIRECTORY(WirelessLocationSystem)
|
||||
ENDIF()
|
||||
# Excluded from Release 2: Buildings, WarehouseManagement, TrainingAreaBaseOC, CombatNetRadio, DifferentialGPS, GuezNasat, ComponentMonitor, WirelessLocationSystem
|
||||
@@ -118,8 +118,8 @@ if(QT6_GUI_AVAILABLE)
|
||||
NGLLogger
|
||||
nglsettings
|
||||
ngltools
|
||||
situationMapElevationMap
|
||||
Trajectory
|
||||
$<IF:$<TARGET_EXISTS:situationMapElevationMap>,situationMapElevationMap,>
|
||||
$<IF:$<TARGET_EXISTS:Trajectory>,Trajectory,>
|
||||
ngldb
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -4,53 +4,10 @@
|
||||
# $Author:
|
||||
#
|
||||
|
||||
# InfrastructureManagement muss zuerst gebaut werden (svcIsmCommon wird von anderen Services benötigt)
|
||||
ADD_SUBDIRECTORY(InfrastructureManagement)
|
||||
ADD_SUBDIRECTORY(AlarmManagement)
|
||||
ADD_SUBDIRECTORY(AreaEffectSimulation)
|
||||
ADD_SUBDIRECTORY(AudioVideoManagement)
|
||||
ADD_SUBDIRECTORY(AssetManagement)
|
||||
ADD_SUBDIRECTORY(CentralEffectSimulation)
|
||||
ADD_SUBDIRECTORY(CodificationManagement)
|
||||
ADD_SUBDIRECTORY(EffectShowManagement)
|
||||
ADD_SUBDIRECTORY(EffectShowClient)
|
||||
ADD_SUBDIRECTORY(Evaluations)
|
||||
# Release 2 Services modules (S set: 3 directories, 6 service modules)
|
||||
# Required by AP9 generator tools and TrainingAreaBase
|
||||
ADD_SUBDIRECTORY(ExerciseManagement)
|
||||
ADD_SUBDIRECTORY(ExerciseEventManagement)
|
||||
ADD_SUBDIRECTORY(FileManagement)
|
||||
ADD_SUBDIRECTORY(FilterManagement)
|
||||
ADD_SUBDIRECTORY(GuezIedManagement)
|
||||
ADD_SUBDIRECTORY(GuezMinelayerProcessing)
|
||||
ADD_SUBDIRECTORY(MarkerManagement)
|
||||
ADD_SUBDIRECTORY(Messaging)
|
||||
ADD_SUBDIRECTORY(MeteoDataManagement)
|
||||
ADD_SUBDIRECTORY(NotificationManagement)
|
||||
ADD_SUBDIRECTORY(NmeaManagement)
|
||||
ADD_SUBDIRECTORY(OcBaseDownload)
|
||||
ADD_SUBDIRECTORY(OcSituationClient)
|
||||
ADD_SUBDIRECTORY(OcSituationServer)
|
||||
ADD_SUBDIRECTORY(OnlineReports)
|
||||
ADD_SUBDIRECTORY(OperatorManagement)
|
||||
ADD_SUBDIRECTORY(ParticipantManagement)
|
||||
ADD_SUBDIRECTORY(PlanEditor)
|
||||
ADD_SUBDIRECTORY(PresentationManagement)
|
||||
ADD_SUBDIRECTORY(ProjectDataManagement)
|
||||
ADD_SUBDIRECTORY(ProjectionWorkstation)
|
||||
ADD_SUBDIRECTORY(RecordingManagement)
|
||||
ADD_SUBDIRECTORY(ReportManagement)
|
||||
ADD_SUBDIRECTORY(RoutingServiceNG)
|
||||
ADD_SUBDIRECTORY(ServiceManagement)
|
||||
ADD_SUBDIRECTORY(ScreenRecording)
|
||||
ADD_SUBDIRECTORY(ServiceMonitor)
|
||||
ADD_SUBDIRECTORY(SituationMap)
|
||||
ADD_SUBDIRECTORY(SituationReplayManagement)
|
||||
ADD_SUBDIRECTORY(SituationReplay)
|
||||
ADD_SUBDIRECTORY(SoundManagement)
|
||||
ADD_SUBDIRECTORY(TargetManagement)
|
||||
IF (NOT BUILD_RPM)
|
||||
ADD_SUBDIRECTORY(VideoOverlayManagement)
|
||||
ENDIF()
|
||||
IF(GUEZ_MODE)
|
||||
ADD_SUBDIRECTORY(WarehouseGuez)
|
||||
ENDIF()
|
||||
# Excluded from Release 2: InfrastructureManagement, AlarmManagement, AreaEffectSimulation, AudioVideoManagement, AssetManagement, CentralEffectSimulation, CodificationManagement, EffectShowManagement, EffectShowClient, Evaluations, ExerciseEventManagement, FileManagement, FilterManagement, GuezIedManagement, GuezMinelayerProcessing, MarkerManagement, Messaging, MeteoDataManagement, NotificationManagement, NmeaManagement, OcBaseDownload, OcSituationClient, OcSituationServer, OnlineReports, OperatorManagement, PlanEditor, PresentationManagement, ProjectionWorkstation, RecordingManagement, ReportManagement, RoutingServiceNG, ServiceManagement, ScreenRecording, ServiceMonitor, SituationMap, SituationReplayManagement, SituationReplay, SoundManagement, TargetManagement, VideoOverlayManagement, WarehouseGuez
|
||||
NGL_INSTALL(AAR SV FILES "alias" DESTINATION "." RENAME ".alias")
|
||||
@@ -4,65 +4,13 @@
|
||||
# $Author$
|
||||
#
|
||||
|
||||
ADD_SUBDIRECTORY(Adler)
|
||||
ADD_SUBDIRECTORY(AsmWorkstationCertifier)
|
||||
ADD_SUBDIRECTORY(CnrProxyTester)
|
||||
ADD_SUBDIRECTORY(ConfigX)
|
||||
# Release 2 Tools modules (S set: 7 tools + TopicDiscover)
|
||||
# AP9 scope: DdsView, LogViewer, SqlBrowser, 3 generators, lupdate
|
||||
ADD_SUBDIRECTORY(DataSampleGenerator)
|
||||
ADD_SUBDIRECTORY(DataSampleReceiver)
|
||||
ADD_SUBDIRECTORY(DBAdministration)
|
||||
ADD_SUBDIRECTORY(DBOperatorSettingsRemover)
|
||||
ADD_SUBDIRECTORY(DdsView)
|
||||
ADD_SUBDIRECTORY(DotMatrixDisplay)
|
||||
ADD_SUBDIRECTORY(EEMFakeServer)
|
||||
ADD_SUBDIRECTORY(LicenceEditor)
|
||||
ADD_SUBDIRECTORY(LocalDomainFinder)
|
||||
#ADD_SUBDIRECTORY(LoginTest)
|
||||
ADD_SUBDIRECTORY(LogViewer)
|
||||
ADD_SUBDIRECTORY(ParticipantDataGenerator)
|
||||
ADD_SUBDIRECTORY(ProjectSettingsEditor)
|
||||
ADD_SUBDIRECTORY(QLedLine)
|
||||
ADD_SUBDIRECTORY(QLedMatrix)
|
||||
ADD_SUBDIRECTORY(RestClientUi)
|
||||
ADD_SUBDIRECTORY(ScreenIdShow)
|
||||
ADD_SUBDIRECTORY(SerialToTcpConverter)
|
||||
ADD_SUBDIRECTORY(Splash)
|
||||
ADD_SUBDIRECTORY(SqlBrowser)
|
||||
ADD_SUBDIRECTORY(DateTimeSyncer)
|
||||
ADD_SUBDIRECTORY(Times)
|
||||
ADD_SUBDIRECTORY(TopicDiscover)
|
||||
ADD_SUBDIRECTORY(VapixConfig)
|
||||
ADD_SUBDIRECTORY(Automount)
|
||||
ADD_SUBDIRECTORY(EgcuSimulator)
|
||||
ADD_SUBDIRECTORY(TextEditorTest)
|
||||
#ADD_SUBDIRECTORY(Examples/Plugins)
|
||||
ADD_SUBDIRECTORY(Examples/TestGuiElement)
|
||||
|
||||
#ADD_SUBDIRECTORY(VideoImport)
|
||||
ADD_SUBDIRECTORY(VulnerabilityStateGenerator)
|
||||
IF (BUILD_WLS)
|
||||
ADD_SUBDIRECTORY(WlsRandomPositions)
|
||||
ENDIF()
|
||||
|
||||
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
ADD_SUBDIRECTORY(InfrastructureManagement)
|
||||
ADD_SUBDIRECTORY(WirelessLocationTools)
|
||||
ENDIF()
|
||||
|
||||
IF (BUILD_TOOLSSV)
|
||||
ADD_SUBDIRECTORY(DBUpdate)
|
||||
ENDIF()
|
||||
|
||||
SET(SCRIPTS
|
||||
startDDSSpy
|
||||
check_start_services
|
||||
)
|
||||
NGL_INSTALL(AAR SV PROGRAMS ${SCRIPTS} DESTINATION bin)
|
||||
|
||||
SET(SCRIPTS_2
|
||||
remove_old_coredumps
|
||||
)
|
||||
NGL_INSTALL(AAR SV WS PROGRAMS ${SCRIPTS_2} DESTINATION bin)
|
||||
|
||||
NGL_INSTALL(AAR WS DIRECTORY "THP2" DESTINATION "share/Lts/")
|
||||
NGL_INSTALL(AAR WS DIRECTORY "THP-overview" DESTINATION "share/Lts/")
|
||||
# Excluded from Release 2: Adler, AsmWorkstationCertifier, CnrProxyTester, ConfigX, DataSampleReceiver, DBAdministration, DBOperatorSettingsRemover, DotMatrixDisplay, EEMFakeServer, LicenceEditor, LocalDomainFinder, LoginTest, ProjectSettingsEditor, QLedLine, QLedMatrix, RestClientUi, ScreenIdShow, SerialToTcpConverter, Splash, DateTimeSyncer, Times, VapixConfig, Automount, EgcuSimulator, TextEditorTest, Examples/Plugins, Examples/TestGuiElement, VideoImport, InfrastructureManagement, WirelessLocationTools, DBUpdate, WlsRandomPositions
|
||||
@@ -1029,66 +1029,17 @@ if [[ "${BUILD_CODIFICATION}" == "ON" ]]; then
|
||||
GROUP5_TARGETS+=("LtsReportDisplay")
|
||||
fi
|
||||
|
||||
# Group 6: LTS Tools (Qt6 migration targets)
|
||||
# These tools require RTI DDS for DataSampleGenerator, DataSampleReceiver, and DdsView
|
||||
# Group 6: LTS Tools (Qt6 migration targets) - Release 2 AP9 scope only
|
||||
# These tools require RTI DDS for DataSampleGenerator and DdsView
|
||||
GROUP6_TARGETS=(
|
||||
dbAdministration
|
||||
SettingsRemover
|
||||
dbUpdate
|
||||
# AP9 tools for Release 2
|
||||
tDataSampleGenerator
|
||||
tDataSampleReceiver
|
||||
DateTimeSyncer
|
||||
ddsview
|
||||
# ddsview runtime topic-type plugins (39 *TopicTypePlugin.so). Not CMake link deps of
|
||||
# ddsview (loaded at runtime via LtsPluginLoader), so `make ddsview` alone skips them and
|
||||
# ddsview shows empty Data/Function topic lists. Built here alongside ddsview.
|
||||
aesTopicTypePlugin
|
||||
almTopicTypePlugin
|
||||
asmTopicTypePlugin
|
||||
avmTopicTypePlugin
|
||||
bldTopicTypePlugin
|
||||
cesTopicTypePlugin
|
||||
cmoTopicTypePlugin
|
||||
codTopicTypePlugin
|
||||
coreTopicTypePlugin
|
||||
eemTopicTypePlugin
|
||||
escTopicTypePlugin
|
||||
esmTopicTypePlugin
|
||||
evlTopicTypePlugin
|
||||
exmTopicTypePlugin
|
||||
flmTopicTypePlugin
|
||||
fltTopicTypePlugin
|
||||
gimTopicTypePlugin
|
||||
gnaTopicTypePlugin
|
||||
ismTopicTypePlugin
|
||||
mdmTopicTypePlugin
|
||||
mrkTopicTypePlugin
|
||||
msgTopicTypePlugin
|
||||
nmeTopicTypePlugin
|
||||
nomTopicTypePlugin
|
||||
obdTopicTypePlugin
|
||||
opmTopicTypePlugin
|
||||
oscTopicTypePlugin
|
||||
ossTopicTypePlugin
|
||||
pdmTopicTypePlugin
|
||||
ppmTopicTypePlugin
|
||||
preTopicTypePlugin
|
||||
repTopicTypePlugin
|
||||
scmTopicTypePlugin
|
||||
somTopicTypePlugin
|
||||
srpTopicTypePlugin
|
||||
tabTopicTypePlugin
|
||||
tabocTopicTypePlugin
|
||||
tgtTopicTypePlugin
|
||||
whgTopicTypePlugin
|
||||
displayPanelSimulator
|
||||
LicenceEditor
|
||||
localDomainFinder
|
||||
LogView
|
||||
LogViewer
|
||||
CoPrtCnv
|
||||
PrtCnvLib
|
||||
PrtCnv
|
||||
ParticipantDataGenerator
|
||||
sqlbrowser
|
||||
topicdiscover
|
||||
VulnerabilityStateGenerator
|
||||
)
|
||||
|
||||
# Group 7: LTS Tools A,B,C,E,I directories (Qt6 migration targets)
|
||||
|
||||
+668
@@ -0,0 +1,668 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Build helper for qt-migrated-legatus inside Docker - RELEASE 2 VERSION
|
||||
#
|
||||
# Release 2 Scope:
|
||||
# - AP3: Shared libraries (LtsUtils, Widgets, Session, Krypto, PluginManager)
|
||||
# - AP4: DDS middleware (Core, DDSConnector, Routing, QosProfile, RTI layer)
|
||||
# - AP9: Tools and translations (DdsView, LogViewer, SqlBrowser, generators, lupdate)
|
||||
#
|
||||
# This script is derived from new_docker_build.sh but focused on Release 2 targets only.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage: ./new_docker_build_release2.sh [options]
|
||||
|
||||
Build groups (Release 2 scope):
|
||||
--group1 / --no-group1 Enable/disable DDS core libraries build (AP4)
|
||||
--group3 / --no-group3 Enable/disable Lts services build (AP3)
|
||||
--group5 / --no-group5 Enable/disable Lts/Viewer module targets and tests (AP9)
|
||||
--group6 / --no-group6 Enable/disable LTS Tools - generators and lupdate (AP9)
|
||||
|
||||
Test execution:
|
||||
--no-ctest Skip ctest execution
|
||||
--tests-only Run only ctest, skip all make build groups
|
||||
|
||||
Prebuilt Docker image usage:
|
||||
--use-prebuilt-image Use a Docker image with dependencies already installed
|
||||
--no-prebuilt-image Use base image and run apt-get install inside the container
|
||||
--docker-image IMAGE Docker image name to use/build/delete
|
||||
--cmake_build_flags FLAGS Extra CMake flags passed to the in-container configure
|
||||
(space-separated -D flags)
|
||||
|
||||
Docker mount configuration:
|
||||
--docker-mount-root PATH Container-side mount root path (default: /repo)
|
||||
Changes where host directories are mounted in container
|
||||
|
||||
Environment variable overrides:
|
||||
BUILD_GROUP1=ON|OFF DDS core libraries (AP4)
|
||||
BUILD_GROUP3=ON|OFF Lts services (AP3)
|
||||
BUILD_GROUP5=ON|OFF Viewer module (AP9)
|
||||
BUILD_GROUP6=ON|OFF Tools/generators (AP9)
|
||||
RUN_CTEST=ON|OFF
|
||||
TESTS_ONLY=ON|OFF
|
||||
USE_PREBUILT_IMAGE=ON|OFF
|
||||
|
||||
Examples:
|
||||
./new_docker_build_release2.sh --group1 --group3 --group5 --group6
|
||||
BUILD_GROUP1=ON BUILD_GROUP3=ON ./new_docker_build_release2.sh
|
||||
./new_docker_build_release2.sh --use-prebuilt-image --no-ctest
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
log_info() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
die() {
|
||||
echo "[ERROR] $*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Default values
|
||||
BUILD_GROUP1="${BUILD_GROUP1:-ON}" # AP4: DDS
|
||||
BUILD_GROUP3="${BUILD_GROUP3:-ON}" # AP3: Lts services
|
||||
BUILD_GROUP5="${BUILD_GROUP5:-ON}" # AP9: Viewer
|
||||
BUILD_GROUP6="${BUILD_GROUP6:-ON}" # AP9: Tools/generators
|
||||
RUN_CTEST="${RUN_CTEST:-ON}"
|
||||
TESTS_ONLY="${TESTS_ONLY:-OFF}"
|
||||
USE_PREBUILT_IMAGE="${USE_PREBUILT_IMAGE:-OFF}"
|
||||
DOCKER_IMAGE="${DOCKER_IMAGE:-qt6-migrated-legatus-release2}"
|
||||
CMAKE_BUILD_FLAGS="${CMAKE_BUILD_FLAGS:-}"
|
||||
DOCKER_MOUNT_ROOT="${DOCKER_MOUNT_ROOT:-/repo}"
|
||||
export DOCKER_MOUNT_ROOT
|
||||
|
||||
# Parse arguments
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--group1)
|
||||
BUILD_GROUP1="ON"
|
||||
shift
|
||||
;;
|
||||
--no-group1)
|
||||
BUILD_GROUP1="OFF"
|
||||
shift
|
||||
;;
|
||||
--group3)
|
||||
BUILD_GROUP3="ON"
|
||||
shift
|
||||
;;
|
||||
--no-group3)
|
||||
BUILD_GROUP3="OFF"
|
||||
shift
|
||||
;;
|
||||
--group5)
|
||||
BUILD_GROUP5="ON"
|
||||
shift
|
||||
;;
|
||||
--no-group5)
|
||||
BUILD_GROUP5="OFF"
|
||||
shift
|
||||
;;
|
||||
--group6)
|
||||
BUILD_GROUP6="ON"
|
||||
shift
|
||||
;;
|
||||
--no-group6)
|
||||
BUILD_GROUP6="OFF"
|
||||
shift
|
||||
;;
|
||||
--no-ctest)
|
||||
RUN_CTEST="OFF"
|
||||
shift
|
||||
;;
|
||||
--tests-only)
|
||||
TESTS_ONLY="ON"
|
||||
shift
|
||||
;;
|
||||
--use-prebuilt-image)
|
||||
USE_PREBUILT_IMAGE="ON"
|
||||
shift
|
||||
;;
|
||||
--no-prebuilt-image)
|
||||
USE_PREBUILT_IMAGE="OFF"
|
||||
shift
|
||||
;;
|
||||
--docker-image)
|
||||
DOCKER_IMAGE="$2"
|
||||
shift 2
|
||||
;;
|
||||
--cmake_build_flags)
|
||||
CMAKE_BUILD_FLAGS="$2"
|
||||
shift 2
|
||||
;;
|
||||
--docker-mount-root)
|
||||
DOCKER_MOUNT_ROOT="$2"
|
||||
shift 2
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
;;
|
||||
*)
|
||||
die "Unknown option: $1"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
require_command() {
|
||||
if ! command -v "$1" &> /dev/null; then
|
||||
die "Required command not found: $1"
|
||||
fi
|
||||
}
|
||||
|
||||
require_command docker
|
||||
|
||||
# Validate environment
|
||||
if [[ ! -f ".envrc" ]]; then
|
||||
die ".envrc not found in current directory. Please create .envrc with required environment variables (e.g., MIGRATE_PIPELINE_ROOT)"
|
||||
fi
|
||||
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
source ".envrc"
|
||||
set +a
|
||||
|
||||
if [[ -z "${MIGRATE_PIPELINE_ROOT:-}" ]]; then
|
||||
die "MIGRATE_PIPELINE_ROOT is not set in .envrc"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${MIGRATE_PIPELINE_ROOT}" ]]; then
|
||||
die "MIGRATE_PIPELINE_ROOT directory does not exist: ${MIGRATE_PIPELINE_ROOT}"
|
||||
fi
|
||||
|
||||
# Validate rti_license.dat exists (required for DDS builds)
|
||||
if [[ "${BUILD_GROUP1}" == "ON" ]] && [[ ! -f "${MIGRATE_PIPELINE_ROOT}/rti_license.dat" ]]; then
|
||||
die "rti_license.dat not found in MIGRATE_PIPELINE_ROOT. Required for DDS builds."
|
||||
fi
|
||||
|
||||
log_info "=== Release 2 Build Configuration ==="
|
||||
log_info "BUILD_GROUP1 (DDS/AP4): ${BUILD_GROUP1}"
|
||||
log_info "BUILD_GROUP3 (Lts/AP3): ${BUILD_GROUP3}"
|
||||
log_info "BUILD_GROUP5 (Viewer/AP9): ${BUILD_GROUP5}"
|
||||
log_info "BUILD_GROUP6 (Tools/AP9): ${BUILD_GROUP6}"
|
||||
log_info "RUN_CTEST: ${RUN_CTEST}"
|
||||
log_info "TESTS_ONLY: ${TESTS_ONLY}"
|
||||
log_info "USE_PREBUILT_IMAGE: ${USE_PREBUILT_IMAGE}"
|
||||
log_info "DOCKER_IMAGE: ${DOCKER_IMAGE}"
|
||||
log_info "DOCKER_MOUNT_ROOT: ${DOCKER_MOUNT_ROOT}"
|
||||
log_info "CMAKE_BUILD_FLAGS: ${CMAKE_BUILD_FLAGS:-none}"
|
||||
log_info "======================================"
|
||||
|
||||
# Define Release 2 targets for each group
|
||||
# AP4: DDS middleware
|
||||
GROUP1_TARGETS=(
|
||||
ddscore
|
||||
svcCoreClient
|
||||
ddsftccore
|
||||
ddsfts
|
||||
ddsgen
|
||||
ddsQoS
|
||||
ddsconnector
|
||||
)
|
||||
|
||||
# AP3: LtsUtils, Widgets, Session, Krypto, PluginManager
|
||||
# These are the core Lts service libraries from GROUP3
|
||||
GROUP3_TARGETS=(
|
||||
NGLLogger
|
||||
nglapplication
|
||||
nglcompression
|
||||
nglcoreapplication
|
||||
ngldb
|
||||
nglguiapplication
|
||||
nglsettings
|
||||
nglsingleapplication
|
||||
nglsinglecoreapplication
|
||||
ngltools
|
||||
ngltranslator
|
||||
nglwidgets
|
||||
qtsingleapplication
|
||||
qtsinglecoreapplication
|
||||
wms_json_ds
|
||||
tcpserver
|
||||
# Core libraries required by services
|
||||
LtsCoordinate
|
||||
LtsCoordTrans
|
||||
svcPdmCommon
|
||||
svcPdmClient
|
||||
svcPdmServer
|
||||
svcProjectDataManagement
|
||||
pdmTests
|
||||
svcAesClient
|
||||
svcAesCommon
|
||||
svcAesServer
|
||||
svcAsmClient
|
||||
svcAsmCommon
|
||||
svcAsmServer
|
||||
svcAssetManagement
|
||||
svcAudioVideoManagement
|
||||
svcAvmClient
|
||||
svcAvmCommon
|
||||
svcAvmServer
|
||||
svcBldClient
|
||||
svcBldCommon
|
||||
svcCentralEffectSimulation
|
||||
svcCesClient
|
||||
svcCesCommon
|
||||
svcCesDDSCommon
|
||||
svcCesGeoPairingImpl
|
||||
svcCesServer
|
||||
svcCodClient
|
||||
svcCodCommon
|
||||
svcCodServer
|
||||
svcEemClient
|
||||
svcEemCommon
|
||||
svcEemServer
|
||||
svcEffectShowClient
|
||||
svcEscClient
|
||||
svcEscCommon
|
||||
svcEscServer
|
||||
svcEsmClient
|
||||
svcEsmCommon
|
||||
svcEsmServer
|
||||
svcEvlClient
|
||||
svcEvlCommon
|
||||
svcEvlServer
|
||||
svcExerciseEventManagement
|
||||
svcExmClient
|
||||
svcExmCommon
|
||||
svcExmServer
|
||||
svcFileManagement
|
||||
svcFilterManagement
|
||||
svcFlmClient
|
||||
svcFlmCommon
|
||||
svcFlmServer
|
||||
svcFltClient
|
||||
svcFltCommon
|
||||
svcFltServer
|
||||
svcGimClient
|
||||
svcGimCommon
|
||||
svcGimServer
|
||||
svcGmpServer
|
||||
svcGuezIedManagement
|
||||
svcIsmClient
|
||||
svcIsmCommon
|
||||
svcIsmServer
|
||||
svcMapDummy
|
||||
svcMdmClient
|
||||
svcMdmCommon
|
||||
svcMdmServer
|
||||
svcMessaging
|
||||
svcMeteoDataManagement
|
||||
svcMrkClient
|
||||
svcMrkCommon
|
||||
svcMrkServer
|
||||
svcMsgClient
|
||||
svcMsgCommon
|
||||
svcMsgServer
|
||||
svcNomClient
|
||||
svcNomCommon
|
||||
svcNomServer
|
||||
svcNotificationManagement
|
||||
svcNmeClient
|
||||
svcNmeCommon
|
||||
svcNmeServer
|
||||
svcNmeaManagement
|
||||
svcObdClient
|
||||
svcObdCommon
|
||||
svcObdServer
|
||||
svcOcBaseDownload
|
||||
svcOcSituationClient
|
||||
svcOcSituationServer
|
||||
svcOperatorManagement
|
||||
svcOpmClient
|
||||
svcOpmCommon
|
||||
svcOpmServer
|
||||
svcOreDummy
|
||||
svcOscClient
|
||||
svcOscCommon
|
||||
svcOscServer
|
||||
svcOssClient
|
||||
svcOssCommon
|
||||
svcOssServer
|
||||
svcPedDummy
|
||||
svcPpmClient
|
||||
svcPpmCommon
|
||||
svcPpmServer
|
||||
svcPreClient
|
||||
svcPreCommon
|
||||
svcPreServer
|
||||
svcPwsCommon
|
||||
svcRecCommon
|
||||
svcRecordingManagement
|
||||
svcRepClient
|
||||
svcRepCommon
|
||||
svcRepCommonExecutable
|
||||
svcRepServer
|
||||
svcReportAnalyzer
|
||||
svcReportGenerator
|
||||
svcScmClient
|
||||
svcScmCommon
|
||||
svcScmServer
|
||||
svcScrDummy
|
||||
svcServiceManagement
|
||||
svcSituationReplay
|
||||
svcSmoDummy
|
||||
svcSomClient
|
||||
svcSomCommon
|
||||
svcSomServer
|
||||
svcSoundManagement
|
||||
svcSrmCommon
|
||||
svcSrpClient
|
||||
svcSrpCommon
|
||||
svcSrpServer
|
||||
svcTgtClient
|
||||
svcTgtCommon
|
||||
svcTgtServer
|
||||
svcVideoOverlayManagement
|
||||
svcWarehouseGuez
|
||||
svcWhgClient
|
||||
svcWhgCommon
|
||||
svcWhgServer
|
||||
asmTests
|
||||
avmFtTests
|
||||
avmTests
|
||||
avmVcaTests
|
||||
cesTests
|
||||
eemTests
|
||||
evlTests
|
||||
exmDtUnitTest
|
||||
exmTests
|
||||
flmTests
|
||||
gmpTests
|
||||
ismTests
|
||||
mrkTests
|
||||
mvsTests
|
||||
nomTests
|
||||
opmTests
|
||||
ppmTests
|
||||
preTests
|
||||
repTests
|
||||
scmDtUnitTest
|
||||
srpFtTests
|
||||
tgtTests
|
||||
whgTests
|
||||
)
|
||||
|
||||
# AP9: Viewer module (DdsView, LogViewer, SqlBrowser)
|
||||
GROUP5_TARGETS=(
|
||||
ddsView
|
||||
logViewer
|
||||
sqlBrowser
|
||||
)
|
||||
|
||||
# AP9: Tools and generators (DaoGenerator, lupdate toolchain)
|
||||
GROUP6_TARGETS=(
|
||||
DaoGenerator
|
||||
lupdate
|
||||
)
|
||||
|
||||
# Build prebuilt image if requested
|
||||
if [[ "${USE_PREBUILT_IMAGE}" == "ON" ]]; then
|
||||
if ! docker image inspect "${DOCKER_IMAGE}" &> /dev/null; then
|
||||
log_info "Prebuilt image ${DOCKER_IMAGE} not found. Building it now..."
|
||||
|
||||
# Create temporary directory for Dockerfile
|
||||
tmp_dir="$(mktemp -d)"
|
||||
trap 'rm -rf "${tmp_dir}"' EXIT
|
||||
|
||||
cat > "${tmp_dir}/Dockerfile" <<'DOCKERFILE'
|
||||
FROM ubuntu:26.04
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install -y -qq \
|
||||
build-essential \
|
||||
cmake \
|
||||
ninja-build \
|
||||
git \
|
||||
python3-pip \
|
||||
libboost-dev \
|
||||
libkf6texttemplate-dev \
|
||||
libqt6core6 \
|
||||
libqt6gui6 \
|
||||
libqt6widgets6 \
|
||||
libqt6sql6 \
|
||||
libqt6sql6-psql \
|
||||
libqt6test6 \
|
||||
qt6-base-dev \
|
||||
qt6-l10n-tools \
|
||||
qt6-serialport-dev \
|
||||
qt6-svg-dev \
|
||||
qt6-tools-dev-tools \
|
||||
qt6-tools-dev \
|
||||
qt6-websockets-dev \
|
||||
libgtest-dev \
|
||||
libgmock-dev \
|
||||
libpq-dev \
|
||||
postgresql-server-dev-all \
|
||||
libvlc-dev \
|
||||
vlc-plugin-base \
|
||||
libssl-dev \
|
||||
libxml2-dev \
|
||||
libxerces-c-dev \
|
||||
&& \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Qt6 packages via aqtinstall
|
||||
RUN pip3 install --break-system-packages --quiet aqtinstall && \
|
||||
aqt install-qt linux desktop 6.10.2 linux_gcc_64 \
|
||||
-m qtmultimedia qtserialport qtimageformats qtwebsockets qtwebengine \
|
||||
qtpdf qtwebview qt5compat qtwebchannel qtpositioning qtlocation qtsensors \
|
||||
--outputdir /opt/Qt && \
|
||||
rm -rf /root/.cache/Aqt
|
||||
|
||||
# Install KDReports from source
|
||||
RUN git clone --depth 1 https://github.com/KDAB/KDReports.git /tmp/KDReports && \
|
||||
cd /tmp/KDReports && \
|
||||
mkdir build && cd build && \
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_PREFIX_PATH=/opt/Qt .. && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -rf /tmp/KDReports
|
||||
|
||||
# Create symlink for KDReports headers
|
||||
RUN ln -sfn KDReports-qt6 /usr/local/include/KDReports
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
DOCKERFILE
|
||||
|
||||
docker build -t "${DOCKER_IMAGE}" "${tmp_dir}"
|
||||
log_info "Prebuilt image created: ${DOCKER_IMAGE}"
|
||||
else
|
||||
log_info "Prebuilt image already exists: ${DOCKER_IMAGE}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Prepare Docker run command
|
||||
DOCKER_RUN_ARGS=(
|
||||
--rm
|
||||
-e MIGRATE_PIPELINE_ROOT
|
||||
-e DOCKER_MOUNT_ROOT="${DOCKER_MOUNT_ROOT}"
|
||||
-e BUILD_GROUP1="${BUILD_GROUP1}"
|
||||
-e BUILD_GROUP3="${BUILD_GROUP3}"
|
||||
-e BUILD_GROUP5="${BUILD_GROUP5}"
|
||||
-e BUILD_GROUP6="${BUILD_GROUP6}"
|
||||
-e RUN_CTEST="${RUN_CTEST}"
|
||||
-e TESTS_ONLY="${TESTS_ONLY}"
|
||||
-v "${MIGRATE_PIPELINE_ROOT}:${DOCKER_MOUNT_ROOT}"
|
||||
-w "${DOCKER_MOUNT_ROOT}/qt-migration-legatus/qt6-after/qt6-migrated-legatus"
|
||||
)
|
||||
|
||||
if [[ "${USE_PREBUILT_IMAGE}" == "ON" ]]; then
|
||||
DOCKER_RUN_ARGS+=("${DOCKER_IMAGE}")
|
||||
else
|
||||
DOCKER_RUN_ARGS+=("ubuntu:26.04")
|
||||
fi
|
||||
|
||||
# When not using prebuilt image, we need to install dependencies first
|
||||
if [[ "${USE_PREBUILT_IMAGE}" == "OFF" ]]; then
|
||||
# Prepend dependency installation to the build command
|
||||
INSTALL_DEPS='
|
||||
set -e
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update -qq && \
|
||||
apt-get install -y -qq \
|
||||
build-essential \
|
||||
cmake \
|
||||
ninja-build \
|
||||
git \
|
||||
python3-pip \
|
||||
libboost-dev \
|
||||
libkf6texttemplate-dev \
|
||||
libqt6core6 \
|
||||
libqt6gui6 \
|
||||
libqt6widgets6 \
|
||||
libqt6sql6 \
|
||||
libqt6sql6-psql \
|
||||
libqt6test6 \
|
||||
qt6-base-dev \
|
||||
qt6-l10n-tools \
|
||||
qt6-serialport-dev \
|
||||
qt6-svg-dev \
|
||||
qt6-tools-dev-tools \
|
||||
qt6-tools-dev \
|
||||
qt6-websockets-dev \
|
||||
libgtest-dev \
|
||||
libgmock-dev \
|
||||
libpq-dev \
|
||||
postgresql-server-dev-all \
|
||||
libvlc-dev \
|
||||
vlc-plugin-base \
|
||||
libssl-dev \
|
||||
libxml2-dev \
|
||||
libxerces-c-dev \
|
||||
&& \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Qt6 packages via aqtinstall
|
||||
pip3 install --break-system-packages --quiet aqtinstall && \
|
||||
aqt install-qt linux desktop 6.10.2 linux_gcc_64 \
|
||||
-m qtmultimedia qtserialport qtimageformats qtwebsockets qtwebengine \
|
||||
qtpdf qtwebview qt5compat qtwebchannel qtpositioning qtlocation qtsensors \
|
||||
--outputdir /opt/Qt && \
|
||||
rm -rf /root/.cache/Aqt
|
||||
|
||||
# Install KDReports from source
|
||||
git clone --depth 1 https://github.com/KDAB/KDReports.git /tmp/KDReports && \
|
||||
cd /tmp/KDReports && \
|
||||
mkdir build && cd build && \
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_PREFIX_PATH=/opt/Qt .. && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -rf /tmp/KDReports
|
||||
|
||||
# Create symlink for KDReports headers
|
||||
ln -sfn KDReports-qt6 /usr/local/include/KDReports
|
||||
|
||||
export PATH="/opt/Qt/6.10.2/gcc_64/bin:$PATH"
|
||||
export CMAKE_PREFIX_PATH="/opt/Qt/6.10.2/gcc_64"
|
||||
|
||||
log_info() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
die() {
|
||||
echo "[ERROR] $*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
log_info "Dependencies installed successfully"
|
||||
|
||||
# Return to project directory
|
||||
cd "${DOCKER_MOUNT_ROOT}/qt-migration-legatus/qt6-after/qt6-migrated-legatus"
|
||||
'
|
||||
else
|
||||
INSTALL_DEPS=''
|
||||
fi
|
||||
|
||||
# Build command
|
||||
DOCKER_RUN_ARGS+=(
|
||||
/bin/bash
|
||||
-c
|
||||
'
|
||||
set -e
|
||||
|
||||
log_info() {
|
||||
echo "[INFO] $*"
|
||||
}
|
||||
|
||||
die() {
|
||||
echo "[ERROR] $*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
'"${INSTALL_DEPS}"'
|
||||
|
||||
# Configure CMake
|
||||
log_info "Configuring CMake..."
|
||||
# Use unique build directory to avoid Docker mount caching issues
|
||||
BUILD_DIR="build4_$(date +%Y%m%d_%H%M%S)_$$"
|
||||
log_info "Using build directory: ${BUILD_DIR}"
|
||||
rm -rf "${BUILD_DIR}"
|
||||
mkdir -p "${BUILD_DIR}"
|
||||
cmake -B "${BUILD_DIR}" \
|
||||
-G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_PREFIX_PATH="/opt/Qt/6.10.2/gcc_64" \
|
||||
-DCMAKE_CXX_FLAGS="-DRTI_LINUX -DRTI_UNIX" \
|
||||
-DCMAKE_C_FLAGS="-DRTI_LINUX -DRTI_UNIX" \
|
||||
-DBUILD_RTI=ON \
|
||||
-DBUILD_GROUP1="${BUILD_GROUP1}" \
|
||||
-DBUILD_GROUP3="${BUILD_GROUP3}" \
|
||||
-DBUILD_GROUP5="${BUILD_GROUP5}" \
|
||||
-DBUILD_GROUP6="${BUILD_GROUP6}" \
|
||||
'"${CMAKE_BUILD_FLAGS}"' \
|
||||
.
|
||||
|
||||
# Build targets
|
||||
log_info "Building Release 2 targets..."
|
||||
|
||||
GROUP1_TARGETS=(ddscore svcCoreClient ddsftccore ddsfts ddsgen ddsQoS ddsconnector)
|
||||
GROUP3_TARGETS=(NGLLogger nglapplication nglcompression nglcoreapplication ngldb nglguiapplication nglsettings nglsingleapplication nglsinglecoreapplication ngltools ngltranslator nglwidgets qtsingleapplication qtsinglecoreapplication wms_json_ds tcpserver LtsCoordinate LtsCoordTrans LtsElevation svcPdmCommon svcPdmClient svcPdmServer svcProjectDataManagement pdmTests svcAesClient svcAesCommon svcAesServer svcBldClient svcBldCommon svcEemClient svcEemCommon svcEemServer svcEscClient svcEscCommon svcEscServer svcEsmClient svcEsmCommon svcEsmServer svcFlmClient svcFlmCommon svcFlmServer svcGmpServer svcMapDummy svcObdClient svcObdCommon svcObdServer svcOscClient svcOscCommon svcOscServer svcOssClient svcOssCommon svcOssServer svcPedDummy svcSituationReplay svcSrpClient svcSrpCommon svcSrpServer eemTests flmTests srpFtTests)
|
||||
GROUP5_TARGETS=(ddsView logViewer sqlBrowser)
|
||||
GROUP6_TARGETS=(DaoGenerator lupdate)
|
||||
|
||||
build_group() {
|
||||
local group_name="$1"
|
||||
local build_flag="$2"
|
||||
shift 2
|
||||
local targets=("$@")
|
||||
|
||||
if [[ "${build_flag}" != "ON" ]]; then
|
||||
log_info "Skipping ${group_name} (disabled)"
|
||||
return
|
||||
fi
|
||||
|
||||
log_info "Building ${group_name}..."
|
||||
for target in "${targets[@]}"; do
|
||||
log_info " Building: ${target}"
|
||||
cmake --build "${BUILD_DIR}" --target "${target}" -j$(nproc) || die "Failed to build ${target}"
|
||||
done
|
||||
}
|
||||
|
||||
build_group "GROUP1 (DDS/AP4)" "${BUILD_GROUP1}" "${GROUP1_TARGETS[@]}"
|
||||
build_group "GROUP3 (Lts/AP3)" "${BUILD_GROUP3}" "${GROUP3_TARGETS[@]}"
|
||||
build_group "GROUP5 (Viewer/AP9)" "${BUILD_GROUP5}" "${GROUP5_TARGETS[@]}"
|
||||
build_group "GROUP6 (Tools/AP9)" "${BUILD_GROUP6}" "${GROUP6_TARGETS[@]}"
|
||||
|
||||
# Run tests if enabled
|
||||
if [[ "${RUN_CTEST}" == "ON" ]] && [[ "${TESTS_ONLY}" != "ON" ]]; then
|
||||
log_info "Running ctest..."
|
||||
cd "${BUILD_DIR}"
|
||||
ctest --output-on-failure -j$(nproc) || log_info "Some tests failed (continuing)"
|
||||
cd ..
|
||||
fi
|
||||
|
||||
log_info "Release 2 build completed successfully!"
|
||||
'
|
||||
)
|
||||
|
||||
log_info "Starting Docker container..."
|
||||
docker run "${DOCKER_RUN_ARGS[@]}"
|
||||
|
||||
log_info "Build script completed."
|
||||
Reference in new issue
Block a user