- Dockerfile: the prebuilt build image recipe (Ubuntu 26.04 + apt deps +
aqtinstall Qt6 + KDReports), parameterized via ARG APT_PACKAGES /
QT_VERSION / QT_ARCH / QT_BASE_DIR.
- new_docker_build.sh: build_prebuilt_image() now runs
docker build -f Dockerfile with the package list and Qt settings passed
as build args, using an empty build context (the Dockerfile has no
COPY/ADD).
- Delete all test_*.cpp, *.cmake helpers, MockCoordTrans.h and the gtest/strix
tooling from tests/: the only target (migration_tests) was guarded by
NOT RELEASE_BUILD, so nothing in tests/ compiles in this branch's
release build.
- Replace tests/CMakeLists.txt with a configure-only placeholder so the
unconditional ADD_SUBDIRECTORY(tests) from the root CMakeLists stays
resolvable without emitting the 'No migration test sources found'
warning or triggering the GTest FetchContent fallback.
- Scope new_docker_build.sh (1672 -> 694 lines) to this branch: keep the
prebuilt-image build/use/delete flow, .envrc/MIGRATE_PIPELINE_ROOT and
rti_license validation, the release-scope in-container cmake/make/ctest
and the Jenkins builder package production. Remove the GROUP1-11
target lists and options, viewer-only, grantlee/arcgis/codification
toggles, tests-only, integration-test and verify-rpm machinery.
- Guard the Lts/Viewer include paths with if(EXISTS): the module is
outside the release scope, and the unguarded include_directories
emitted -Wmissing-include-dirs for every translation unit
- nglpdfpage: initialize m_rotation before m_scaleFactor to match the
member declaration order (-Wreorder)
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).
NGL_ADD_SUBDIR_GUARDED gates on MIGRATE_MODULE, not directory
existence: with MIGRATE_MODULE empty (the release build path) the
unconditional add_subdirectory(translations) fails when the directory
is missing. It is a configure requirement like tests/ and doxygen/
(no .qm output reaches the DEB packages).
- include/ArcGIS (984 MB): ArcGIS modules are force-excluded in
RELEASE_BUILD (BUILD_ARCGIS=OFF) and no in-scope code includes its
headers
- translations/: no .qm files reach any DEB; CMake add is guarded
- external/ (ArcGIS symlink): FindArcGIS only runs when BUILD_ARCGIS=ON
- rti_license.dat: license is supplied via RTI_LICENSE_FILE=
/workspace/rti_license.dat mounted from the pipeline root
- repo-root infra (.github, ci, docs, scripts, .entire, Jenkinsfile,
README, .envrc-example, .clang-format, empty .gitmodules): not
consumed by the DEB build
Kept: cmake/, include/ (non-ArcGIS), doxygen/ (unguarded doxygen
targets in root CMakeLists), tests/ (unconditional ADD_SUBDIRECTORY),
lts-cc.conf (CONFIGURE_FILE), CTestCustom.ctest, new_docker_build.sh,
.gitignore files, qt6-after/external mount symlink.
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.
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).
Line 2 (services side) used a bare key line, which the allowed_signers parser rejects; prefix it with the signer principal like line 1 so git verify-commit matches the key.