lomiri.*: Fix CMake 4 compat (#450821)

This commit is contained in:
Grimmauld
2025-10-15 10:43:38 +00:00
committed by GitHub
21 changed files with 143 additions and 419 deletions

View File

@@ -2,10 +2,12 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch2,
gitUpdater,
testers,
boost186,
cmake,
ctestCheckHook,
dbus,
doxygen,
graphviz,
@@ -35,6 +37,16 @@ stdenv.mkDerivation (finalAttrs: {
"examples"
];
patches = [
# Provide more information when there's an issue in AsyncExecutionLoadTest.RepeatedlyInvokingAnAsyncFunctionWorks
# Remove when version > 5.0.5
(fetchpatch2 {
name = "0001-dbus-cpp-tests-async_execution_load_test-Print-received-error-on-DBus-method-failure.name";
url = "https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp/-/commit/8390ce83153c2ae29f21afd2bf5e79e88c59e6d9.diff";
hash = "sha256-js2nXT7eG9dcX+yoFMNRVlamQxsbJclmKTX6/5RxxM4=";
})
];
postPatch = ''
substituteInPlace doc/CMakeLists.txt \
--replace-fail 'DESTINATION share/''${CMAKE_PROJECT_NAME}/doc' 'DESTINATION ''${CMAKE_INSTALL_DOCDIR}'
@@ -71,6 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
];
nativeCheckInputs = [
ctestCheckHook
dbus
];
@@ -87,6 +100,12 @@ stdenv.mkDerivation (finalAttrs: {
# DBus, parallelism messes with communication
enableParallelChecking = false;
disabledTests = [
# Possible memory corruption in Executor.TimeoutsAreHandledCorrectly
# https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp/-/issues/10
"executor_test"
];
preFixup = ''
moveToOutput libexec/examples $examples
'';

View File

@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitLab,
fetchpatch2,
testers,
gitUpdater,
cmake,
@@ -30,6 +31,16 @@ stdenv.mkDerivation (finalAttrs: {
"dev"
];
patches = [
# Fix compat with CMake 4
# Remove when version > 3.0.2
(fetchpatch2 {
name = "0001-process-cpp-Bump-cmake_minimum_required-to-version-3.10.patch";
url = "https://gitlab.com/ubports/development/core/lib-cpp/process-cpp/-/commit/c374b62cb79d668505c1c8dc55edddc938a573ba.diff";
hash = "sha256-2H6f+EAR7p4mb0ReNl8LaosPVF/CNRm+PiYV7tkOQ/w=";
})
];
postPatch = ''
substituteInPlace data/process-cpp.pc.in \
--replace-fail 'libdir=''${exec_prefix}' 'libdir=''${prefix}' \

View File

@@ -14,25 +14,15 @@
stdenv.mkDerivation (finalAttrs: {
pname = "properties-cpp";
version = "0.0.3";
version = "0.0.4";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lib-cpp/properties-cpp";
rev = finalAttrs.version;
hash = "sha256-C/BDEuKNMQHOjATO5aWBptjIlgfv6ykzjFAsHb6uP3Q=";
hash = "sha256-rxv2SPTXubaIBlDZixBZ88wqM7pxY03dVhRVImcDZtA=";
};
postPatch = ''
# GTest needs C++17
# Remove when https://gitlab.com/ubports/development/core/lib-cpp/properties-cpp/-/merge_requests/3 merged & in release
substituteInPlace CMakeLists.txt \
--replace-fail 'std=c++14' 'std=c++17'
''
+ lib.optionalString (!finalAttrs.finalPackage.doCheck) ''
sed -i "/add_subdirectory(tests)/d" CMakeLists.txt
'';
strictDeps = true;
nativeBuildInputs = [

View File

@@ -37,6 +37,15 @@ let
rev = "3179d35694a28267a0b6273fc9b5bdce3b6b1235";
hash = "sha256-XvqqDXaFclWK/XpIxOqAXQ9gcc/dTljl841CN0KrlyA=";
};
# CMake 4 compat
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail 'cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)' 'cmake_minimum_required(VERSION 3.10 FATAL_ERROR)'
substituteInPlace td/generate/tl-parser/CMakeLists.txt \
--replace-fail 'cmake_minimum_required(VERSION 3.0 FATAL_ERROR)' 'cmake_minimum_required(VERSION 3.10 FATAL_ERROR)'
'';
}
);
in
@@ -59,6 +68,19 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-zxxFvoj6jluGPCA9GQsxuYYweaSOVrkD01hZwCtq52U=";
})
# Fix CMake 4 compatibility
# Remove when version > 1.21
(fetchpatch {
name = "0002-teleports-CMakeLists.txt-Support-building-with-CMake-4.patch";
url = "https://gitlab.com/ubports/development/apps/teleports/-/commit/ffb4e745889a473a208a86a29b7e439129930b01.patch";
hash = "sha256-EdcCHH/0Zq8wcF6UPyvy16wntDeSqTV9LWQat91LNRo=";
})
(fetchpatch {
name = "0003-teleports-libs-qtdlib-CMakeLists.txt-Support-building-with-CMake-4.patch";
url = "https://gitlab.com/ubports/development/apps/teleports/-/commit/fe7f0cb304ddaefae9f97917d3edc89de5f21b1f.patch";
hash = "sha256-yIc/l6iHb5qWI0QZOx8Hhd0lgEYyPozL+AjrmF2L89k=";
})
# Remove when https://gitlab.com/ubports/development/apps/teleports/-/merge_requests/586 merged & in release
./1001-app-CMakeLists.txt-Drop-explicit-dependency-on-rlottie.patch
];
@@ -101,7 +123,7 @@ stdenv.mkDerivation (finalAttrs: {
quazip
quickflux
rlottie
tdlib-1811
finalAttrs.passthru.tdlib
];
postInstall = ''
@@ -115,6 +137,8 @@ stdenv.mkDerivation (finalAttrs: {
'';
passthru = {
tdlib = tdlib-1811;
updateScript = gitUpdater { rev-prefix = "v"; };
tests.vm = nixosTests.teleports;
};

View File

@@ -0,0 +1,37 @@
From 3dea0cc91b579de5e2c9db811f2e9e34079d3733 Mon Sep 17 00:00:00 2001
From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Date: Mon, 1 Sep 2025 13:22:26 +0200
Subject: [PATCH] {CMakeLists.txt,cmake/GtkDocScanGObjWrapper.cmake}: Bump
cmake_minimum_required() to version 3.10.
---
CMakeLists.txt | 2 +-
cmake/GtkDocScanGObjWrapper.cmake | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5fbff8a..e7b863e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.10)
project(geonames VERSION 0.3.1 LANGUAGES C)
include(GNUInstallDirs)
diff --git a/cmake/GtkDocScanGObjWrapper.cmake b/cmake/GtkDocScanGObjWrapper.cmake
index b187ebb..b026ed0 100644
--- a/cmake/GtkDocScanGObjWrapper.cmake
+++ b/cmake/GtkDocScanGObjWrapper.cmake
@@ -20,7 +20,7 @@
# This is needed for find_package(PkgConfig) to work correctly --
# CMAKE_MINIMUM_REQUIRED_VERSION needs to be defined.
-cmake_minimum_required(VERSION 3.2)
+cmake_minimum_required(VERSION 3.10)
if(NOT APPLE)
# We use pkg-config to find glib et al
--
GitLab

View File

@@ -42,6 +42,12 @@ stdenv.mkDerivation (finalAttrs: {
"devdoc"
];
patches = [
# Fix compat with CMake 4
# Remove when https://gitlab.com/ubports/development/core/geonames/-/merge_requests/4 merged & in release
./1001-geonames-cmake4-compat.patch
];
postPatch = ''
patchShebangs src/generate-locales.sh tests/setup-test-env.sh
'';

View File

@@ -35,6 +35,11 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://gitlab.com/ubports/development/core/gmenuharness/-/commit/70e9ed85792a6ac1950faaf26391ce91e69486ab.patch";
hash = "sha256-jeue0qrl2JZCt/Yfj4jT210wsF/E+MlbtNT/yFTcw5I=";
})
(fetchpatch {
name = "0002-gmenuharness-CMakeLists.txt-Bump-cmake_minimum_required-to-version-3.10.patch";
url = "https://gitlab.com/ubports/development/core/gmenuharness/-/commit/42d04e0d484b3715e7b9935e3ef3e2fa6c33b409.patch";
hash = "sha256-Gyk8TxIfEWsqL9CGymmnVA/Xj4/+J1PRNmWikNEcRJ8=";
})
];
postPatch = ''

View File

@@ -21,13 +21,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-api";
version = "0.2.2";
version = "0.2.3";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-api";
tag = finalAttrs.version;
hash = "sha256-+ttmtvt18NMKYfGntEXgBOSJ3lW9Bf55327XYIzxMh8=";
hash = "sha256-ypz15XX0ESkOWI6G+a9/36bRg5gBG0X4Y/EvB/m7qm8=";
};
outputs = [
@@ -40,13 +40,13 @@ stdenv.mkDerivation (finalAttrs: {
patchShebangs $(find test -name '*.py')
substituteInPlace data/liblomiri-api.pc.in \
--replace "\''${prefix}/@CMAKE_INSTALL_LIBDIR@" '@CMAKE_INSTALL_FULL_LIBDIR@'
--replace-fail "\''${prefix}/@CMAKE_INSTALL_LIBDIR@" '@CMAKE_INSTALL_FULL_LIBDIR@'
# Variable is queried via pkg-config by reverse dependencies
# TODO This is likely not supposed to be the regular Qt QML import prefix
# but otherwise i.e. lomiri-notifications cannot be found in lomiri
substituteInPlace CMakeLists.txt \
--replace 'SHELL_PLUGINDIR ''${CMAKE_INSTALL_LIBDIR}/lomiri/qml' 'SHELL_PLUGINDIR ${qtbase.qtQmlPrefix}'
--replace-fail 'SHELL_PLUGINDIR ''${CMAKE_INSTALL_LIBDIR}/lomiri/qml' 'SHELL_PLUGINDIR ${qtbase.qtQmlPrefix}'
'';
strictDeps = true;

View File

@@ -2,7 +2,6 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
testers,
cmake,
cmake-extras,
@@ -37,13 +36,13 @@ stdenv.mkDerivation (finalAttrs: {
# Not regular qtmir, experimental support for Mir 2.x
# Currently following https://gitlab.com/ubports/development/core/qtmir/-/tree/personal/sunweaver/debian-upstream
pname = "qtmir-debian-upstream";
version = "0.8.0-unstable-2024-03-06";
version = "0.8.0-unstable-2025-05-20";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/qtmir";
rev = "de639c3a482ac6c59b9be02abb839a8c96158041";
hash = "sha256-AKSzkGl6bAoR4I2lolNRUp67VS/PiZnrPpCYtTlKWKc=";
rev = "b35762f5198873560138a810b387ae9401615c02";
hash = "sha256-v5mdu3XLK4F5O56GDItyeCFsFMey4JaNWwXRlgjKFMA=";
};
outputs = [
@@ -51,37 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
"dev"
];
patches = [
# Mir 2.15 compatibility patch
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/70 merged into branch
(fetchpatch {
name = "0001-qtmir-Update-for-Mir-2.15-removals.patch";
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/ead5cacd4d69094ab956627f4dd94ecaff1fd69e.patch";
hash = "sha256-hUUUnYwhNH3gm76J21M8gA5okaRd/Go03ZFJ4qn0JUo=";
})
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/72 merged in branch
(fetchpatch {
name = "0002-qtmir-Add-more-better-GNUInstallDirs-variables-usage.patch";
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/87e2cd31052ce15e9625c1327807a320ee5d12af.patch";
hash = "sha256-MTE9tHw+xJhraEO1up7dLg0UIcmfHXgWOeuyYrVu2wc=";
})
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/73 merged in branch
(fetchpatch {
name = "0003-qtmir-CMakeLists-Only-require-test-dependencies-when-building-tests.patch";
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/b7144e67bcbb4cfbd2283d5d05146fb22b7d8cd4.patch";
hash = "sha256-Afbj40MopztchDnk6fphTYk86YrQkiK8L1e/oXiL1Mw=";
})
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/74 merged in branch
(fetchpatch {
name = "0004-qtmir-CMakeLists-Drop-call-of-Qt-internal-macro.patch";
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/8f9c599a4dbc4cf35e289157fd0c82df55b9f8d9.patch";
hash = "sha256-SMAErXnlMtVleWRPgO4xuUI7gAAy6W18LxtgXgetRA4=";
})
];
postPatch = ''
# 10s timeout for Mir startup is too tight for VM tests on weaker hardwre (aarch64)
substituteInPlace src/platforms/mirserver/qmirserver_p.cpp \

View File

@@ -56,6 +56,14 @@ stdenv.mkDerivation (finalAttrs: {
# Fix compatibility with glog 0.7.x
# Remove when https://gitlab.com/ubports/development/core/trust-store/-/merge_requests/18 merged & in release
./1001-treewide-Switch-to-glog-CMake-module.patch
# Fix compatibility with CMake 4 and beyond (for now)
# Remove when version > 2.0.2
(fetchpatch {
name = "1002-trust-store-CMakeLists.txt-Bump-minimum-version-to-3.10.patch";
url = "https://gitlab.com/ubports/development/core/trust-store/-/commit/64bc51f45e1407f16d389120508c2bcddf9e0d5b.patch";
hash = "sha256-+ZkTQd6wphd29dTmEIBI7nADFjPQD5012/FVFOtdGbI=";
})
];
postPatch = ''

View File

@@ -2,7 +2,7 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
cmake,
lomiri-api,
lomiri-indicator-network,
@@ -13,24 +13,15 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-push-qml";
version = "0-unstable-2022-09-15";
version = "0.3.1";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-push-qml";
rev = "6f87ee5cf92e2af0e0ce672835e71704e236b8c0";
hash = "sha256-ezLcQRJ7Sq/TVbeGJL3Vq2lzBe7StRRCrWXZs2CCUX8=";
tag = finalAttrs.version;
hash = "sha256-1HJkcAe5ixqmEACy4mSk5dSCPf4FsY3tzH6v09SSH+M=";
};
patches = [
# Remove when https://gitlab.com/ubports/development/core/lomiri-push-qml/-/merge_requests/6 merged
(fetchpatch {
name = "0001-lomiri-push-qml-Stop-using-qt5_use_modules.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-push-qml/-/commit/a4268c98b9f50fdd52da69c173d377f78ea93104.patch";
hash = "sha256-OijTB5+I9/wabT7dX+DkvoEROKzAUIKhBZkkhqq5Oig=";
})
];
postPatch = ''
# Queries QMake for QML install location, returns QtBase build path
substituteInPlace src/*/PushNotifications/CMakeLists.txt \
@@ -64,6 +55,8 @@ stdenv.mkDerivation (finalAttrs: {
export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
'';
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Lomiri Push Notifications QML plugin";
homepage = "https://gitlab.com/ubports/development/core/lomiri-push-qml";

View File

@@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-settings-components";
version = "1.1.2";
version = "1.1.3";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-settings-components";
rev = finalAttrs.version;
hash = "sha256-H7G3dzzitdyahB/MwgtfRBpo+qMOhmQSzN4EGYculks=";
hash = "sha256-WKLdTiTVfgX9IAVPsRGx7GWBbYMI9iICXevzrfuHPGc=";
};
postPatch = ''

View File

@@ -1,25 +0,0 @@
From e8893fcae7e732c9e15ccd6d54a62b5b3862e445 Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Thu, 16 Jan 2025 17:12:36 +0100
Subject: [PATCH 1/5] doc/liblomiri-thumbnailer-qt: Honour CMAKE_INSTALL_DOCDIR
---
doc/liblomiri-thumbnailer-qt/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/liblomiri-thumbnailer-qt/CMakeLists.txt b/doc/liblomiri-thumbnailer-qt/CMakeLists.txt
index 91e12a0..3e96f80 100644
--- a/doc/liblomiri-thumbnailer-qt/CMakeLists.txt
+++ b/doc/liblomiri-thumbnailer-qt/CMakeLists.txt
@@ -28,7 +28,7 @@ add_doxygen(
)
install(DIRECTORY ${PROJECT_BINARY_DIR}/doc/liblomiri-thumbnailer-qt/html
- DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/doc/liblomiri-thumbnailer-qt)
+ DESTINATION ${CMAKE_INSTALL_DOCDIR})
add_subdirectory(examples)
--
2.47.0

View File

@@ -1,97 +0,0 @@
From 37687a195052186432923276bc2c2358b3622ab1 Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Thu, 16 Jan 2025 17:12:44 +0100
Subject: [PATCH 2/5] Re-enable documentation
---
CMakeLists.txt | 6 +++++-
debian/liblomiri-thumbnailer-qt-doc.install | 1 +
...lomiri-thumbnailer-qt-doc.install.disabled | 1 -
doc/liblomiri-thumbnailer-qt/CMakeLists.txt | 21 ++++++++-----------
4 files changed, 15 insertions(+), 14 deletions(-)
create mode 100644 debian/liblomiri-thumbnailer-qt-doc.install
delete mode 100644 debian/liblomiri-thumbnailer-qt-doc.install.disabled
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 464ac70..cade10f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -184,7 +184,11 @@ if (${BUILD_TESTING})
endif()
add_subdirectory(include)
add_subdirectory(man)
-#add_subdirectory(doc)
+
+option(ENABLE_DOC "Build documentation" ON)
+if(ENABLE_DOC)
+ add_subdirectory(doc)
+endif()
#enable_coverage_report(
# TARGETS
diff --git a/debian/liblomiri-thumbnailer-qt-doc.install b/debian/liblomiri-thumbnailer-qt-doc.install
new file mode 100644
index 0000000..ff56aee
--- /dev/null
+++ b/debian/liblomiri-thumbnailer-qt-doc.install
@@ -0,0 +1 @@
+usr/share/doc/lomiri-thumbnailer/*
diff --git a/debian/liblomiri-thumbnailer-qt-doc.install.disabled b/debian/liblomiri-thumbnailer-qt-doc.install.disabled
deleted file mode 100644
index db055cf..0000000
--- a/debian/liblomiri-thumbnailer-qt-doc.install.disabled
+++ /dev/null
@@ -1 +0,0 @@
-usr/share/doc/liblomiri-thumbnailer-qt/*
diff --git a/doc/liblomiri-thumbnailer-qt/CMakeLists.txt b/doc/liblomiri-thumbnailer-qt/CMakeLists.txt
index 3e96f80..fe98e4c 100644
--- a/doc/liblomiri-thumbnailer-qt/CMakeLists.txt
+++ b/doc/liblomiri-thumbnailer-qt/CMakeLists.txt
@@ -1,35 +1,32 @@
-include(UseDoxygen OPTIONAL)
+find_package(DoxygenBuilder REQUIRED)
file(GLOB libthumbnailer_headers "${PROJECT_SOURCE_DIR}/include/lomiri/thumbnailer/qt/*.h")
add_doxygen(
liblomiri-thumbnailer-qt-doc
+ PROJECT_NAME
+ "Thumbnailer Qt API"
INPUT
${CMAKE_CURRENT_SOURCE_DIR}/tutorial.dox
${libthumbnailer_headers}
- OUTPUT_DIRECTORY
- ${CMAKE_BINARY_DIR}/doc/liblomiri-thumbnailer-qt
+ EXAMPLE_PATH
+ ${CMAKE_CURRENT_SOURCE_DIR}
STRIP_FROM_PATH
"${CMAKE_SOURCE_DIR}/src"
STRIP_FROM_INC_PATH
"${CMAKE_SOURCE_DIR}/include"
+ DOXYFILE_IN
+ ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
EXCLUDE_PATTERNS
*/internal/*
EXCLUDE_SYMBOLS
*::internal*
*::Priv
- EXAMPLE_PATH
- ${CMAKE_CURRENT_SOURCE_DIR}
- DOXYFILE_IN
- ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
- PROJECT_NAME
- "Thumbnailer Qt API"
+ INSTALL
+ ${CMAKE_INSTALL_DOCDIR}
ALL
)
-install(DIRECTORY ${PROJECT_BINARY_DIR}/doc/liblomiri-thumbnailer-qt/html
- DESTINATION ${CMAKE_INSTALL_DOCDIR})
-
add_subdirectory(examples)
list(APPEND UNIT_TEST_TARGETS qt_example_test)
--
2.47.0

View File

@@ -1,25 +0,0 @@
From 010d19f85f4f8d73f96f054e5d293951fae1f9de Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Thu, 16 Jan 2025 17:12:45 +0100
Subject: [PATCH 3/5] doc/liblomiri-thumbnailer-qt/examples: Drop
qt5_use_modules usage
Leftover from a0d81863f3f48717507cfa181030a8ffb0c4e881
---
doc/liblomiri-thumbnailer-qt/examples/CMakeLists.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/doc/liblomiri-thumbnailer-qt/examples/CMakeLists.txt b/doc/liblomiri-thumbnailer-qt/examples/CMakeLists.txt
index db8139f..825a821 100644
--- a/doc/liblomiri-thumbnailer-qt/examples/CMakeLists.txt
+++ b/doc/liblomiri-thumbnailer-qt/examples/CMakeLists.txt
@@ -1,6 +1,5 @@
include_directories(${CMAKE_BINARY_DIR}/tests ${CMAKE_SOURCE_DIR}/tests)
add_executable(qt_example_test qt_example_test.cpp)
-qt5_use_modules(qt_example_test Core Gui Network Test)
target_link_libraries(qt_example_test
gtest
Qt5::Core
--
2.47.0

View File

@@ -1,131 +0,0 @@
From ffec02835aa44e93c96c48b7a33be3f51a3571a1 Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Thu, 16 Jan 2025 17:12:46 +0100
Subject: [PATCH 4/5] Re-enable coverge reporting
---
CMakeLists.txt | 51 +++++++++++++--------
doc/CMakeLists.txt | 6 ++-
doc/liblomiri-thumbnailer-qt/CMakeLists.txt | 8 ++--
tests/CMakeLists.txt | 2 -
4 files changed, 40 insertions(+), 27 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cade10f..cbfd9c0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -134,7 +134,14 @@ endif()
include(CTest)
-#include(EnableCoverageReport)
+if (cmake_build_type_lower MATCHES coverage)
+ find_package(CoverageReport REQUIRED)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs" )
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage -fprofile-arcs" )
+ set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -coverage" )
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -coverage" )
+endif()
+
include(cmake/UseGSettings.cmake)
@@ -169,6 +176,8 @@ include_directories(${TAGLIB_DEPS_INCLUDE_DIRS})
include_directories(include)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
+set(UNIT_TEST_TARGETS "")
+
add_subdirectory(src)
add_subdirectory(data)
add_subdirectory(plugins/Lomiri/Thumbnailer.0.1)
@@ -190,22 +199,24 @@ if(ENABLE_DOC)
add_subdirectory(doc)
endif()
-#enable_coverage_report(
-# TARGETS
-# recovery_test # Need to turn on coverage for this, to get the helper template instrumented.
-# testutils
-# test-seq
-# thumbnailer-admin
-# thumbnailer-qml
-# thumbnailer-qml-static
-# lomiri-thumbnailer-qt
-# thumbnailer-service
-# thumbnailer-static
-# vs-thumb
-# vs-thumb-static
-# FILTER
-# ${CMAKE_SOURCE_DIR}/tests/*
-# ${CMAKE_BINARY_DIR}/*
-# TESTS
-# ${UNIT_TEST_TARGETS}
-#)
+if (cmake_build_type_lower MATCHES coverage)
+ enable_coverage_report(
+ TARGETS
+ recovery_test # Need to turn on coverage for this, to get the helper template instrumented.
+ testutils
+ test-seq
+ lomiri-thumbnailer-admin
+ LomiriThumbnailer-qml
+ thumbnailer-qml-static
+ lomiri-thumbnailer-qt
+ thumbnailer-service
+ thumbnailer-static
+ vs-thumb
+ vs-thumb-static
+ FILTER
+ ${CMAKE_SOURCE_DIR}/tests/*
+ ${CMAKE_BINARY_DIR}/*
+ TESTS
+ ${UNIT_TEST_TARGETS}
+ )
+endif()
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 11f4449..249f5e0 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -1,4 +1,6 @@
add_subdirectory(liblomiri-thumbnailer-qt)
-list(APPEND UNIT_TEST_TARGETS qt_example_test)
-set(UNIT_TEST_TARGETS ${UNIT_TEST_TARGETS} PARENT_SCOPE)
+if(BUILD_TESTING)
+ list(APPEND UNIT_TEST_TARGETS qt_example_test)
+ set(UNIT_TEST_TARGETS ${UNIT_TEST_TARGETS} PARENT_SCOPE)
+endif()
diff --git a/doc/liblomiri-thumbnailer-qt/CMakeLists.txt b/doc/liblomiri-thumbnailer-qt/CMakeLists.txt
index fe98e4c..078be07 100644
--- a/doc/liblomiri-thumbnailer-qt/CMakeLists.txt
+++ b/doc/liblomiri-thumbnailer-qt/CMakeLists.txt
@@ -27,7 +27,9 @@ add_doxygen(
ALL
)
-add_subdirectory(examples)
+if(BUILD_TESTING)
+ add_subdirectory(examples)
-list(APPEND UNIT_TEST_TARGETS qt_example_test)
-set(UNIT_TEST_TARGETS ${UNIT_TEST_TARGETS} PARENT_SCOPE)
+ list(APPEND UNIT_TEST_TARGETS qt_example_test)
+ set(UNIT_TEST_TARGETS ${UNIT_TEST_TARGETS} PARENT_SCOPE)
+endif()
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 03a4900..97cb3a1 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -42,8 +42,6 @@ set(slow_test_dirs
stress
)
-set(UNIT_TEST_TARGETS "")
-
foreach(dir ${unit_test_dirs})
add_subdirectory(${dir})
list(APPEND UNIT_TEST_TARGETS "${dir}_test")
--
2.47.0

View File

@@ -1,38 +0,0 @@
From d9152f5e1f77a6c3bbc759eec58811410de7b85a Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Thu, 16 Jan 2025 17:12:49 +0100
Subject: [PATCH 5/5] Make GTest available to example test
---
CMakeLists.txt | 2 ++
tests/CMakeLists.txt | 1 -
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cbfd9c0..0663b44 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -189,6 +189,8 @@ if (${BUILD_TESTING})
find_package(Qt5QuickTest REQUIRED)
find_package(Qt5Network REQUIRED)
+ find_package(GMock REQUIRED)
+
add_subdirectory(tests)
endif()
add_subdirectory(include)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 97cb3a1..92eae14 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -3,7 +3,6 @@
set(old_cxx_flags ${CMAKE_CXX_FLAGS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wno-old-style-cast -Wno-missing-field-initializers")
-find_package(GMock)
set(CMAKE_CXX_FLAGS ${old_cxx_flags})
set(TESTDATADIR ${CMAKE_CURRENT_SOURCE_DIR}/media)
--
2.47.0

View File

@@ -33,13 +33,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-thumbnailer";
version = "3.0.4";
version = "3.0.5";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-thumbnailer";
tag = finalAttrs.version;
hash = "sha256-pf/bzpooCcoIGb5JtSnowePcobcfVSzHyBaEkb51IOg=";
hash = "sha256-TfBGcHg9y9G2Rxs/OpZ8CcQrhK05gijZjVxOYSTkJJ8=";
};
outputs = [
@@ -49,21 +49,6 @@ stdenv.mkDerivation (finalAttrs: {
];
patches = [
# Fix compat with taglib 2.x
# Remove when version > 3.0.4
(fetchpatch {
name = "0001-lomiri-thumbnailer-Fix-taglib-2.x-compat.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/commit/b7f1055e36cd6e33314bb9f6648f93e977a33267.patch";
hash = "sha256-9RHtxqsgdMkgIyswaeL5yS6+o/YvzT+HgRD8KL/RfNM=";
})
# Remove when https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/merge_requests/23 merged & in release
./1001-doc-liblomiri-thumbnailer-qt-Honour-CMAKE_INSTALL_DO.patch
./1002-Re-enable-documentation.patch
./1003-doc-liblomiri-thumbnailer-qt-examples-Drop-qt5_use_m.patch
./1004-Re-enable-coverge-reporting.patch
./1005-Make-GTest-available-to-example-test.patch
# In aarch64 lomiri-gallery-app VM tests, default 10s timeout for thumbnail extractor is often too tight
# Raise to 20s to work around this (too much more will run into D-Bus' call timeout)
./2001-Raise-default-extraction-timeout.patch

View File

@@ -3,6 +3,7 @@
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
testers,
cmake,
cmake-extras,
@@ -17,13 +18,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libqtdbustest";
version = "0.3.2";
version = "0.4.0";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/libqtdbustest";
rev = finalAttrs.version;
hash = "sha256-yqqyKxsbqiVTrkas79YoPMi28dKFNntiE7+dx1v+Qh4=";
hash = "sha256-49YIkaQ2ceJxaPLkzOg+L3bwiPzoB36xU7skRh4vYQg=";
};
patches = [
@@ -90,11 +91,14 @@ stdenv.mkDerivation (finalAttrs: {
runHook postCheck
'';
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater { };
};
meta = with lib; {
description = "Library for testing DBus interactions using Qt";
homepage = "https://launchpad.net/libqtdbustest";
homepage = "https://gitlab.com/ubports/development/core/libqtdbustest";
license = licenses.lgpl3Only;
platforms = platforms.unix;
teams = [ teams.lomiri ];

View File

@@ -70,18 +70,3 @@ diff '--color=auto' -ur '--color=never' a/tests/libqtdbustest/TestQProcessDBusSe
+ "python3",
QStringList() << "-m" << "dbusmock" << "not.test.name"
<< "/test/object" << "test.Interface");
diff '--color=auto' -ur '--color=never' a/tests/libqtdbustest/TestSuicidalProcess.cpp b/tests/libqtdbustest/TestSuicidalProcess.cpp
--- a/tests/libqtdbustest/TestSuicidalProcess.cpp 2023-01-20 21:36:16.948292559 +0100
+++ b/tests/libqtdbustest/TestSuicidalProcess.cpp 2023-01-20 21:55:07.219951081 +0100
@@ -51,9 +51,7 @@
pgrep.waitForFinished();
pgrep.waitForReadyRead();
- EXPECT_TRUE(QString::fromUtf8(pgrep.readAll().trimmed())
- .toStdString()
- .find("sleep 5") != std::string::npos);
+ EXPECT_TRUE(pgrep.readAll().contains("sleep 5"));
}
} // namespace

View File

@@ -29,6 +29,11 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace CMakeLists.txt \
--replace-fail 'quickflux STATIC' 'quickflux' \
--replace-fail 'DESTINATION include' 'DESTINATION ''${CMAKE_INSTALL_INCLUDEDIR}'
# Fix CMake 4 compat
# https://github.com/benlau/quickflux/pull/37
substituteInPlace CMakeLists.txt \
--replace-fail 'cmake_minimum_required(VERSION 3.0.0)' 'cmake_minimum_required(VERSION 3.10)'
'';
strictDeps = true;