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
@@ -5,6 +5,8 @@
|
||||
#
|
||||
|
||||
# Release 2 Common modules (S set: 16 modules)
|
||||
# Mock library for unit tests (CoordTrans mocks)
|
||||
ADD_SUBDIRECTORY(CommonUnitTestsPlaceholder)
|
||||
ADD_SUBDIRECTORY(CodeGen)
|
||||
ADD_SUBDIRECTORY(httq)
|
||||
ADD_SUBDIRECTORY(LtsAppDescriptor)
|
||||
|
||||
@@ -7,3 +7,4 @@
|
||||
ADD_SUBDIRECTORY(CoPrtCnv)
|
||||
ADD_SUBDIRECTORY(LogView)
|
||||
ADD_SUBDIRECTORY(PrtCnv)
|
||||
ADD_SUBDIRECTORY(unit-test)
|
||||
@@ -4,11 +4,21 @@
|
||||
# $Author$
|
||||
#
|
||||
ADD_SUBDIRECTORY(Console)
|
||||
|
||||
# Create a separate library for logger functionality that can be linked by other targets
|
||||
NGL_ADD_LIBRARY(LogViewLogger AAR SV STATIC
|
||||
logger.cpp
|
||||
logger.h
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(LogViewLogger
|
||||
NGLLogger
|
||||
)
|
||||
|
||||
SET_TARGET_PROPERTIES(LogViewLogger PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
SET(my_SRCS
|
||||
IntegerCalculator.cpp
|
||||
IntegerCalculator.hpp
|
||||
logger.cpp
|
||||
logger.h
|
||||
LogViewBooleanEdit.cpp
|
||||
LogViewBooleanEdit.hpp
|
||||
LogViewDateTimeEdit.cpp
|
||||
@@ -79,6 +89,7 @@ if(QT6_GUI_AVAILABLE)
|
||||
NGLLogger
|
||||
nglapplication
|
||||
ngltools
|
||||
LogViewLogger
|
||||
)
|
||||
endif()
|
||||
NGL_INSTALL_TARGET(LogView)
|
||||
|
||||
@@ -111,6 +111,7 @@ DOCKER_MOUNT_ROOT="${DOCKER_MOUNT_ROOT:-/repo}"
|
||||
export DOCKER_MOUNT_ROOT
|
||||
|
||||
# Jenkins builder options for DEB package production
|
||||
GUEZ_MODE="${GUEZ_MODE:-ON}"
|
||||
RUN_JENKINS_BUILDER="${RUN_JENKINS_BUILDER:-OFF}"
|
||||
PACKAGE_OUTPUT_DIR="${PACKAGE_OUTPUT_DIR:-./packages-out}"
|
||||
LTS_VERSION="${LTS_VERSION:-1.0}"
|
||||
@@ -495,6 +496,7 @@ rm -rf "${BUILD_DIR}"
|
||||
mkdir -p "${BUILD_DIR}"
|
||||
cmake -B "${BUILD_DIR}" \
|
||||
-G Ninja \
|
||||
-DBUILD_TESTING=ON \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_PREFIX_PATH="/opt/Qt/6.10.2/gcc_64" \
|
||||
-DCMAKE_CXX_FLAGS="-DRTI_LINUX -DRTI_UNIX" \
|
||||
|
||||
@@ -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