diff --git a/qt6-after/qt6-migrated-legatus/Lts/Common/CMakeLists.txt b/qt6-after/qt6-migrated-legatus/Lts/Common/CMakeLists.txt index 4cda0ce2f..1f352c1c2 100755 --- a/qt6-after/qt6-migrated-legatus/Lts/Common/CMakeLists.txt +++ b/qt6-after/qt6-migrated-legatus/Lts/Common/CMakeLists.txt @@ -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) diff --git a/qt6-after/qt6-migrated-legatus/TetraIF/CMakeLists.txt b/qt6-after/qt6-migrated-legatus/TetraIF/CMakeLists.txt index 2440f9340..7d18701d5 100644 --- a/qt6-after/qt6-migrated-legatus/TetraIF/CMakeLists.txt +++ b/qt6-after/qt6-migrated-legatus/TetraIF/CMakeLists.txt @@ -7,3 +7,4 @@ ADD_SUBDIRECTORY(CoPrtCnv) ADD_SUBDIRECTORY(LogView) ADD_SUBDIRECTORY(PrtCnv) +ADD_SUBDIRECTORY(unit-test) diff --git a/qt6-after/qt6-migrated-legatus/TetraIF/LogView/CMakeLists.txt b/qt6-after/qt6-migrated-legatus/TetraIF/LogView/CMakeLists.txt index 30d9b0fee..13a3cbf20 100644 --- a/qt6-after/qt6-migrated-legatus/TetraIF/LogView/CMakeLists.txt +++ b/qt6-after/qt6-migrated-legatus/TetraIF/LogView/CMakeLists.txt @@ -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) diff --git a/qt6-after/qt6-migrated-legatus/new_docker_build_release2.sh b/qt6-after/qt6-migrated-legatus/new_docker_build_release2.sh index c02e8276f..d1f399299 100755 --- a/qt6-after/qt6-migrated-legatus/new_docker_build_release2.sh +++ b/qt6-after/qt6-migrated-legatus/new_docker_build_release2.sh @@ -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" \ diff --git a/qt6-after/qt6-migrated-legatus/rpmbuild/make_rpm_ubuntu26_release2.py b/qt6-after/qt6-migrated-legatus/rpmbuild/make_rpm_ubuntu26_release2.py index 562960818..1b00ccb1a 100644 --- a/qt6-after/qt6-migrated-legatus/rpmbuild/make_rpm_ubuntu26_release2.py +++ b/qt6-after/qt6-migrated-legatus/rpmbuild/make_rpm_ubuntu26_release2.py @@ -183,7 +183,7 @@ def create_debian_control(deb_dir, package_name, version, build_number, descript Section: {section} Priority: optional Maintainer: Legatus Team -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 + # _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)