Fix Release 2 build: restore test wiring lost in merge, use Ninja in DEB packaging

The full-module import merge (097e5b488) replaced the validated Release 2
test wiring with the full-tree CMake files, leaving 5 targets referenced by
new_docker_build_release2.sh / README undefined:

- Restore LogViewLogger library in TetraIF/LogView/CMakeLists.txt
  (pre-merge file defined both LogViewLogger lib and LogView exe)
- Re-add ADD_SUBDIRECTORY(unit-test) in TetraIF/CMakeLists.txt
  (coprtcnv_unit_test, logview_unit_test, prtcnv_unit_test)
- Add CommonUnitTestsPlaceholder to Lts/Common/CMakeLists.txt (MockCoordTrans)

Driver (new_docker_build_release2.sh):
- Pass -DBUILD_TESTING=ON: TetraIF/unit-test is gated on BUILD_TESTING
- Default GUEZ_MODE=ON: the DEB step expanded ${GUEZ_MODE} in-container
  where it was unset, producing -DGUEZ_MODE= (false in CMake)

rpmbuild/make_rpm_ubuntu26_release2.py:
- Use the Ninja generator (cmake -G Ninja / dh_auto_configure -GNinja):
  with CMake 4.2.3 in the legatus-qt6:1.0 image the Unix Makefiles
  generator emits no rule for AUTOMOC <target>_autogen/mocs_compilation.cpp
  ("No rule to make target") and every Qt target fails; Ninja handles
  automoc correctly (verified: ninja -n of all 39 Release 2 targets passes)
- Add ninja-build to debian Build-Depends

Verified inside legatus-qt6:1.0 (mount /repo, BUILD_RTI=ON, BUILD_TESTING=ON,
Ninja): cmake configure exit 0 and ninja -n of the full Release 2 target
list (GROUP1/3/5/6, 39 targets) exit 0.

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
berrux-devandClaude Code committed 2026-11-13 15:30:00 +01:00
1 parent df8b739e80
commit 56064ca293
5 files changed
+28 -6

No files matched your search

@@ -183,7 +183,7 @@ def create_debian_control(deb_dir, package_name, version, build_number, descript
Section: {section}
Priority: optional
Maintainer: Legatus Team <team@legatus.example.com>
Build-Depends: debhelper (>= 13), cmake, qt6-base-dev, qt6-tools-dev
Build-Depends: debhelper (>= 13), cmake, ninja-build, qt6-base-dev, qt6-tools-dev
Standards-Version: 4.6.0
Package: {package_name}
@@ -214,7 +214,9 @@ override_dh_auto_test:
dh $@ --buildsystem=cmake
override_dh_auto_configure:
dh_auto_configure -- -DCMAKE_BUILD_TYPE=Release {cmake_flags}
# -GNinja: required, see build_all_debs (CMake 4.x Makefiles generator
# breaks AUTOMOC; the cmake buildsystem would otherwise use make).
dh_auto_configure -- -GNinja -DCMAKE_BUILD_TYPE=Release {cmake_flags}
override_dh_auto_build:
dh_auto_build --parallel
@@ -424,9 +426,13 @@ def build_all_debs(source_dir, output_dir, version, build_number, cmake_flags):
os.makedirs(build_dir, exist_ok=True)
os.chdir(build_dir)
info("Running CMake configuration...")
run(f"cmake -DCMAKE_BUILD_TYPE=Release {cmake_flags} ..", "CMake configuration failed")
# Ninja is REQUIRED here: with the CMake 4.x in the legatus-qt6 image the
# Unix Makefiles generator emits no rule for AUTOMOC
# <target>_autogen/mocs_compilation.cpp ("No rule to make target"), which
# breaks every Qt target. Ninja handles automoc correctly.
run(f"cmake -G Ninja -DCMAKE_BUILD_TYPE=Release {cmake_flags} ..", "CMake configuration failed")
info("Running build...")
run(f"make -j$(nproc)", "Build failed")
run(f"ninja -j$(nproc)", "Build failed")
info("Build completed successfully")
# Package 1: qt6-release-runtime (binaries and libraries, built via debuild)