- new_docker_build.sh: new --run-coverage mode (mutually exclusive with
--run-jenkins-builder). Instruments the release-scope build with
-O0 -g --coverage -fPIC -DNDEBUG (RELEASE flag override keeps -DNDEBUG
and -fPIC so behavior and PIC match the green baseline), runs ctest,
then collects the lcov report: capture --external -> extract on the
four release dirs -> remove test sources -> summary -> genhtml, all
with --ignore-errors mismatch,inconsistent,unused (GCC 15 + lcov 2.4).
Report lands in --coverage-output-dir (default ./coverage-out):
html/index.html, coverage.info, coverage_summary.txt.
- Dockerfile image gains lcov via APT_PACKAGES (genhtml ships in the
same package).
- Jenkinsfile: RunCoverage parameter (default on) + per-OS Coverage
stage running the driver on the agent and archiving
coverage/<project>/<os>/**.
- release-16-10-2026.sh: same coverage step, gated by DRYRUN_COVERAGE
(default ON, mirrors the Jenkins default).
- README: Step 6 (code coverage) and options/env reference entries.
- .gitignore: coverage-out/
- Drop the 'Stub file ... BUILD_RTI=OFF / Auto-generated' headers from the
tab_* and pdm_* stub files (RTI is gone on this branch; the names say it)
- Drop stub comments from MockCoordTrans.h and the coordTransTests placeholders
- Drop the DDS exclusion list comment from Lts/Common/CMakeLists.txt
- Shorten the staging and packages-out comments in new_docker_build.sh
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).
- 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>
- 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>
- 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).