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:
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)
|
||||
|
||||
Reference in new issue
Block a user