depot/pkgs/development/libraries/appstream/qt.nix
Luke Granger-Brown 57725ef3ec Squashed 'third_party/nixpkgs/' content from commit 76612b17c0ce
git-subtree-dir: third_party/nixpkgs
git-subtree-split: 76612b17c0ce71689921ca12d9ffdc9c23ce40b2
2024-11-10 23:59:47 +00:00

45 lines
1.4 KiB
Nix

{ lib, stdenv, appstream, qtbase, qttools, nixosTests }:
# TODO: look into using the libraries from the regular appstream derivation as we keep duplicates here
let
qtSuffix = lib.optionalString (lib.versions.major qtbase.version == "5") "5";
in
stdenv.mkDerivation {
pname = "appstream-qt";
inherit (appstream) version src;
outputs = [ "out" "dev" "installedTests" ];
buildInputs = appstream.buildInputs ++ [ appstream qtbase ];
nativeBuildInputs = appstream.nativeBuildInputs ++ [ qttools ];
mesonFlags = appstream.mesonFlags ++ [
(lib.mesonBool "qt" true)
(lib.mesonOption "qt-versions" (lib.versions.major qtbase.version))
];
patches = appstream.patches;
dontWrapQtApps = true;
# AppStreamQt tries to be relocatable, in hacky cmake ways that generally fail
# horribly on NixOS. Just hardcode the paths.
postFixup = ''
sed -i "$dev/lib/cmake/AppStreamQt${qtSuffix}/AppStreamQt${qtSuffix}Config.cmake" \
-e "/INTERFACE_INCLUDE_DIRECTORIES/ s@\''${PACKAGE_PREFIX_DIR}@$dev@"
sed -i "$dev/lib/cmake/AppStreamQt${qtSuffix}/AppStreamQt${qtSuffix}Config.cmake" \
-e "/IMPORTED_LOCATION/ s@\''${PACKAGE_PREFIX_DIR}@$out@"
'';
passthru = appstream.passthru // {
tests = {
installed-tests = nixosTests.installed-tests.appstream-qt;
};
};
meta = appstream.meta // {
description = "Software metadata handling library - Qt";
};
}