92 lines
2.0 KiB
Nix

{
stdenv,
lib,
fetchFromGitHub,
unstableGitUpdater,
cmake,
extra-cmake-modules,
libsForQt5,
mkcal,
pkg-config,
tzdata,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "qtorganizer-mkcal";
version = "0-unstable-2025-02-14";
src = fetchFromGitHub {
owner = "dcaliste";
repo = "qtorganizer-mkcal";
rev = "3090565d70ecdfaad2cba57d5a895fa69afd024a";
hash = "sha256-ZNAcqjkVf9efP+WWTDr2YFZT+eZdIJAfX45Gm0+Y81A=";
};
postPatch = ''
substituteInPlace src/CMakeLists.txt \
--replace-fail 'DESTINATION ''${CMAKE_INSTALL_LIBDIR}/qt5/plugins' 'DESTINATION ''${CMAKE_INSTALL_PREFIX}/${libsForQt5.qtbase.qtPluginPrefix}'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs =
[
extra-cmake-modules
mkcal
]
++ (with libsForQt5; [
kcalendarcore
qtbase
qtpim
]);
nativeCheckInputs = [
tzdata
];
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "INSTALL_TESTS" false)
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
preCheck =
let
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
in
''
export QT_QPA_PLATFORM=minimal
export QT_PLUGIN_PATH=${
listToQtVar libsForQt5.qtbase.qtPluginPrefix (
with libsForQt5;
[
qtbase
qtpim
]
)
}
# Wants to load the just-built plugin, doesn't try to set up the build dir / environment for that
mkdir -p $TMP/fake-install/organizer
cp ./src/libqtorganizer_mkcal.so $TMP/fake-install/organizer
export QT_PLUGIN_PATH=$TMP/fake-install:$QT_PLUGIN_PATH
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "QtOrganizer plugin using sqlite via mKCal";
homepage = "https://github.com/dcaliste/qtorganizer-mkcal";
license = lib.licenses.bsd3;
maintainers = lib.teams.lomiri.members;
platforms = lib.platforms.linux;
};
})