The compiled tabPluginTetraJson plugin includes
TrainingAreaBase/recv_from_tab.h and TrainingAreaBase/send_to_tab.h
for shared data structures; they are listed in SRCS_exe but are not
exe-exclusive. Restored from the base commit.
Lts/Common: drop the 17 submodules excluded from the RELEASE_BUILD
branch of Lts/Common/CMakeLists.txt (CodeGen, LtsAppManager, LtsBotan,
LtsCoordinate, LtsElevation, LtsLogin, LtsMultiMonitor,
LtsPluginManager, LtsPrinting, LtsProjectionWorkstation,
LtsScriptTimeline, LtsSession, LtsTimeline, LtsTimelineClassic,
LtsVirtualKeyboard, LtsWidgets, TopicEditorBase). Only the 13
subdirectories actually built remain.
TrainingAreaBase: drop sources of targets excluded by
IF(NOT RELEASE_BUILD) / IF(BUILD_RTI) (svcTabClient, svcTabServer,
svcTrainingAreaBase exe, RecordReplayPlugin customization) and the 7
plugin directories not added in the release path (AdlerJson,
ApacheHlaJson, DebugJsonDir, HlaJson, Nmea, UAS, WlsTetra). Only
tabTelegrams, svcTabCommon and the TetraJson plugin are compiled.
Cross-checked: no kept compiled source includes headers from the
removed modules (GuiPluginInterface - the only LtsWidgets consumer -
is itself NOT RELEASE_BUILD-guarded).
The RELEASE_BUILD include path (root CMakeLists.txt) points to
Lts/Services/ProjectDataManagement/stubs, which TrainingAreaBase's
tab_plugin_interface.h needs (ProjectDataManagement/pdm.hpp). Only the
stub headers are restored - the full PDM module stays out of scope.
- LtsTimeline depends on LtsWidgets library which has DDS dependencies
- LtsTimeline is not required for TetraIF/Z release scope modules
- Wrap LtsTimeline in release scope exclusion
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- AdlerJson depends on svcPdmClient (ProjectDataManagement) which is not in release scope
- Wrap ADD_SUBDIRECTORY(AdlerJson) in IF(NOT RELEASE_BUILD) conditional
- Prevents build failure from missing pdm_enums.hpp header
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- svcTabServer library is DDS-dependent and should be excluded in release builds
- Missing ENDIF() caused CMake configuration error at line 177
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- LtsUtilsGui/ConnectDialog links against LtsWidgets which is not in release scope
- Wrap LtsUtilsGui subdirectory in IF(NOT RELEASE_BUILD) conditional
- Only LtsUtilsCore and LtsUtilsSettings are included in release builds
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- CodeGen module is excluded from release scope (S set)
- Release scope modules (TetraIF, Z, Lts/Common subset) do not use CODEGEN macros
- Wrapping include and macro call in RELEASE_BUILD conditional prevents ngl_codegen target reference
- Resolves: make: *** No rule to make target 'ngl_codegen'. Stop.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Wrap TopicReplayInterface and RecordReplayPlugin in BUILD_RTI conditional
- These modules require RTI DDS which is not in release scope
- Fixes missing topiceditorbase_export.h error during release builds
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- LtsUtilsGuiDds requires DDS headers not available in release scope
- Only needed by LtsMultiMonitor which is outside release scope
- Wrap ADD_SUBDIRECTORY in RELEASE_BUILD check
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add /usr/share/cmake/geographiclib to CMAKE_MODULE_PATH
- This allows CMake to find FindGeographicLib.cmake from system package
- Required for DEB build in Docker container
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add LINK_DIRECTORIES() to properly link GeographicLib
- Apply to library, tools, and test targets
- Fixes undefined reference errors during DEB package build
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- TARGET_LINK_DIRECTORIES is not a standard CMake command
- Rely on full path for linking
- Applied to LtsCoordTrans library, tools, and test executable
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Changed from NGL_TARGET_LINK_LIBRARIES to TARGET_LINK_LIBRARIES for GeographicLib
- Added TARGET_LINK_DIRECTORIES to ensure linker finds the library
- Applied to LtsCoordTrans library, tools, and test executable
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add RELEASE_BUILD CMake option to control release scope
- Modify main CMakeLists.txt to conditionally build only release modules
- Modify Lts/CMakeLists.txt to only include Lts/Common when RELEASE_BUILD=ON
- Modify Lts/Common/CMakeLists.txt to exclude LtsElevation (depends on Lts/Viewer/SituationMap)
- Update new_docker_build.sh defaults for release:
- RELEASE_BUILD=ON (default)
- BUILD_RTI=OFF (avoids Lts/Services/GROUP1 dependency)
- BUILD_GROUP3=ON (TetraIF), BUILD_GROUP5=ON (Z), BUILD_GROUP11=ON (Lts/Common)
- All other BUILD_GROUP* variables OFF
- Add RELEASE_BUILD to Docker environment exports and CMake invocation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Continue the Qt5->Qt6 migration so the LTS Projects (Group 10) and LTS
Application (Group 11) compile, link, and ctest runs.
Qt5->Qt6 API migration (resolves removed/deprecated Qt6 APIs) across Lts
Tools and Apps, e.g. QAction->QActionGroup, QAbstractSocket::errorOccurred,
Qt::SkipEmptyParts, QRandomGenerator, QInputDevice::DeviceType,
QRegularExpression, QLatin1Literal->QStringLiteral, and the SampleModel
m_description->description rename.
CMake build fixes:
- CMakeLists.txt: add Lts/Common to CMAKE_AUTOMOC_INCLUDE_DIRECTORIES so moc
resolves Q_INTERFACES(ProjectPlugin::Plugin) for the migrated Projects.
- cmake/NGLMacros.cmake: NGL_COMPILE_RESOURCES - replace return() (which aborts
the calling CMakeLists.txt) with an if/else/endif.
- OpApp/THP: guard the ArcGISQt5Hack link with $<IF:$<TARGET_EXISTS:...>> (the
target is absent when the SituationMap viewer is stubbed); matches
CentralEffectSimulation.
- LtsSession: prefer the in-tree svcCoreClient target over a FIND_LIBRARY in
/usr/local/lib.
- CnrProxyTester/DotMatrixDisplay: set AUTOUIC_SEARCH_PATHS for the ui/ subdir.
- TopicDiscover: link NGLLogger.
Export-header visibility stubs (expand the empty *_EXPORT macro to
__attribute__((visibility("default"))); the build sets -fvisibility=hidden and
these stubs shadow the CMake-generated header):
- include/LtsProjectionWorkstation/ltsprojectionworkstation_export.h (fixes
undefined reference to LtsProjectionWorkstation::getInstance /
setProjectionOperatorPreset)
- include/LtsSession/ltssession_export.h, include/LtsUtilsGuiDds/ltsutilsguidds_export.h (same pattern)
New plugin modules (copied from legacy) so LtsAppDescriptorChecker finds the
gui:3 IIDs referenced by the Projects' apps.json:
- TakeHomePackageManager/OldTHP gui:3:tpm.man, gui:3:tpm.usb
- PresentationManagement/.../ScriptEditor gui:3:pre.script.edit
- Timeline/Gui/EventTimelineClassic gui:3:tln.view
new_docker_build.sh: correct group targets to the actual CMake target names,
guard LtsReportDisplay on BUILD_CODIFICATION, and skip modules unavailable in
the prebuilt image (AsmWorkstationCertifier/botan2, TrajectoryWidget,
VideoImport, thp_viewer/VLC).
Deletes the two stub-header trees (249 files) that shadowed the real
rtiddsgen-generated DDS headers, and removes every reference to them.
CMake (15 include-path entries):
root CMakeLists.txt include_directories(.../forward-declarations);
NGL_TARGET_INCLUDE_DIRECTORIES entries in 7 service CMakeLists
(ServiceManagement, SoundManagement, SituationMap, ScreenRecording,
SituationReplayManagement, SituationReplay, ServiceMonitor)
Source includes that resolved to the root-level stubs (only 2, repointed to the
module-prefixed generated headers the rest of the tree already uses):
Lts/Services/AreaEffectSimulation/object_charge_effect.h
<aes_dtc.h> -> <AreaEffectSimulation/aes_dtc.h>
Lts/Proxies/TrainingAreaBaseOC/websocket_handler.h
<taboc_dtc.h> -> <TrainingAreaBaseOC/taboc_dtc.h>
(generic_dtc_impl.h needs no change: its quote-include "generic_dtc.h"
resolves to the real Lts/DDS/DTC/generic_dtc.h in the same directory)
Tests:
tests/test_migration_stubs.cpp: remove the redundant root-level stub test
(AesDtcCompiles) - the module-prefixed AreaEffectSimulationDtcCompiles test
already exercises the same AreaEffectSimulation::Interface header.
tests/test_skl_dtc.cpp: delete (removed-module compile test, already filtered
out of the build) and remove its now-obsolete CMake list(FILTER) exclusion.
Validation: full rebuild (build4, make -j4 -k) with the removal - 0 new compile
errors vs the pre-existing base-state baseline (77 unique real-error signatures
identical to baseline; all 15 'No such file' headers pre-existing).
- Updated all include/*/*_dtc.h stub headers to include generated files
from build4/Lts/Proxies/*/ directories
- Changed ParticipantManagement stub headers to use generated files
- Updated ProjectDataManagement pdm_enums.hpp to include generated file
- Updated Buildings bld_dtc.h to include generated file
- Created BUILD_STATUS_REPORT.md documenting current build state
Migration Status:
- DDS core libraries: ✅ Building successfully (6 libraries)
- Proxies module code: ✅ Migration complete
- Services modules: ⚠️ Pre-existing errors blocking full build
- ParticipantManagement: Type definition mismatches
- InfrastructureManagement: Struct/member mismatches
- ProjectDataManagement: DTC implementation errors
These Services errors are unrelated to Qt6 migration work and require
separate fixes. Once resolved, Proxies module will build automatically.
(cherry picked from commit 5501d1e501)
- Updated all include/*/*_dtc.h stub headers to include generated files
from build4/Lts/Proxies/*/ directories
- Changed ParticipantManagement stub headers to use generated files
- Updated ProjectDataManagement pdm_enums.hpp to include generated file
- Updated Buildings bld_dtc.h to include generated file
- Created BUILD_STATUS_REPORT.md documenting current build state
Migration Status:
- DDS core libraries: ✅ Building successfully (6 libraries)
- Proxies module code: ✅ Migration complete
- Services modules: ⚠️ Pre-existing errors blocking full build
- ParticipantManagement: Type definition mismatches
- InfrastructureManagement: Struct/member mismatches
- ProjectDataManagement: DTC implementation errors
These Services errors are unrelated to Qt6 migration work and require
separate fixes. Once resolved, Proxies module will build automatically.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add GROUP5_TARGETS array with 7 Viewer module targets to new_docker_build.sh
- Add BUILD_GRANTLEE support throughout build script (help, env vars, cmake invocation)
- Fix duplicate BUILD_GROUP4 default in container script section
- Register LtsDataViewTest with CTest in LtsDataView/CMakeLists.txt
- Register LtsFileDialogTest with CTest in LtsFileDialog/CMakeLists.txt
- Update help text to document --group5/--no-group5 and --grantlee/--no-grantlee options
- Set BUILD_GROUP5=OFF and BUILD_GRANTLEE=ON as defaults
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>