Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pkgs/desktops/lomiri/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ let
cmake-extras = callPackage ./development/cmake-extras { };
deviceinfo = callPackage ./development/deviceinfo { };
gmenuharness = callPackage ./development/gmenuharness { };
libusermetrics = callPackage ./development/libusermetrics { };
lomiri-api = callPackage ./development/lomiri-api { };
};
in
Expand Down
129 changes: 129 additions & 0 deletions pkgs/desktops/lomiri/development/libusermetrics/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
{ stdenv
, lib
, fetchFromGitLab
, gitUpdater
, testers
, cmake
, cmake-extras
, dbus
, doxygen
, gsettings-qt
, gtest
, intltool
, json-glib
, libapparmor
, libqtdbustest
, pkg-config
, qdjango
, qtbase
, qtdeclarative
, qtxmlpatterns
, ubports-click
, wrapQtAppsHook
}:

stdenv.mkDerivation (finalAttrs: {
pname = "libusermetrics";
version = "1.3.0";

src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/libusermetrics";
rev = finalAttrs.version;
hash = "sha256-yO9wZcXJBKt1HZ1GKoQ1flqYuwW9PlXiWLE3bl21PSQ=";
};

outputs = [
"out"
"dev"
"doc"
];

postPatch = ''
substituteInPlace data/CMakeLists.txt \
--replace '/etc' "$out/etc"

# Tries to query QMake for QT_INSTALL_QML variable, would return broken paths into /build/qtbase-<commit> even if qmake was available
substituteInPlace src/modules/UserMetrics/CMakeLists.txt \
--replace "\''${QT_IMPORTS_DIR}/UserMetrics" '${placeholder "out"}/${qtbase.qtQmlPrefix}/UserMetrics'

substituteInPlace src/libusermetricsinput/CMakeLists.txt \
--replace 'RUNTIME DESTINATION bin' 'RUNTIME DESTINATION ''${CMAKE_INSTALL_BINDIR}'

substituteInPlace doc/CMakeLists.txt \
--replace "\''${CMAKE_INSTALL_DATAROOTDIR}/doc/libusermetrics-doc" "\''${CMAKE_INSTALL_DOCDIR}"
'' + lib.optionalString (!finalAttrs.doCheck) ''
# Only needed by tests
sed -i -e '/QTDBUSTEST/d' CMakeLists.txt
'';

strictDeps = true;

nativeBuildInputs = [
cmake
doxygen
intltool
pkg-config
wrapQtAppsHook
];

buildInputs = [
cmake-extras
gsettings-qt
json-glib
libapparmor
qdjango
qtxmlpatterns
ubports-click

# Plugin
qtbase
];

nativeCheckInputs = [
dbus
];

checkInputs = [
gtest
libqtdbustest
qtdeclarative
];

cmakeFlags = [
"-DGSETTINGS_LOCALINSTALL=ON"
"-DGSETTINGS_COMPILE=ON"
"-DENABLE_TESTS=${lib.boolToString finalAttrs.doCheck}"
];

doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;

checkPhase = ''
runHook preCheck

export QT_PLUGIN_PATH=${lib.getBin qtbase}/lib/qt-${qtbase.version}/plugins/
export QML2_IMPORT_PATH=${lib.getBin qtdeclarative}/lib/qt-${qtbase.version}/qml/
dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf -- \
make test "''${enableParallelChecking:+-j $NIX_BUILD_CORES}"

runHook postCheck
'';

passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater { };
};

meta = with lib; {
description = "Enables apps to locally store interesting numerical data for later presentation";
homepage = "https://gitlab.com/ubports/development/core/libusermetrics";
license = licenses.lgpl3Only;
maintainers = teams.lomiri.members;
platforms = platforms.linux;
mainProgram = "usermetricsinput";
pkgConfigModules = [
"libusermetricsinput-1"
"libusermetricsoutput-1"
];
};
})