1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
{
lib,
stdenv,
stdenvAdapters,
cmake,
pkg-config,
cairo,
file,
hyprutils,
libheif,
libjpeg,
libjxl,
librsvg,
libspng,
libwebp,
pango,
pixman,
version ? "git",
doCheck ? false,
debug ? false,
}: let
inherit (builtins) foldl';
inherit (lib.lists) flatten;
inherit (lib.sources) cleanSource cleanSourceWith;
inherit (lib.strings) hasSuffix;
adapters = flatten [
stdenvAdapters.useMoldLinker
(lib.optional debug stdenvAdapters.keepDebugInfo)
];
customStdenv = foldl' (acc: adapter: adapter acc) stdenv adapters;
in
customStdenv.mkDerivation {
pname = "hyprgraphics";
inherit version doCheck;
src = cleanSourceWith {
filter = name: _type: let
baseName = baseNameOf (toString name);
in
! (hasSuffix ".nix" baseName);
src = cleanSource ../.;
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
cairo
file
hyprutils
libheif
libjpeg
libjxl
librsvg
libspng
libwebp
pango
pixman
];
outputs = ["out" "dev"];
cmakeBuildType =
if debug
then "Debug"
else "RelWithDebInfo";
meta = with lib; {
homepage = "https://github.com/hyprwm/hyprgraphics";
description = "Small C++ library with graphics / resource related utilities used across the hypr* ecosystem";
license = licenses.bsd3;
platforms = platforms.linux;
};
}
|