nixpkgs/pkgs/development/libraries/astal/buildAstalModule.nix
PerchunPak 00f81357aa astal: move source to a separate package
It provides general description for all astal packages and r-ryantm
will create properly named PRs.
2025-04-09 10:13:11 +05:30

84 lines
1.6 KiB
Nix

{
lib,
stdenv,
source, # this is ./source.nix
glib,
wrapGAppsHook3,
gobject-introspection,
meson,
pkg-config,
ninja,
vala,
wayland,
wayland-scanner,
python3,
}:
let
cleanArgs = lib.flip builtins.removeAttrs [
"name"
"sourceRoot"
"nativeBuildInputs"
"buildInputs"
"website-path"
"meta"
];
buildAstalModule =
{
name,
sourceRoot ? "lib/${name}",
nativeBuildInputs ? [ ],
buildInputs ? [ ],
website-path ? name,
meta ? { },
...
}@args:
stdenv.mkDerivation (
finalAttrs:
cleanArgs args
// {
pname = "astal-${name}";
inherit (source) version;
__structuredAttrs = true;
strictDeps = true;
src = source;
sourceRoot = "${finalAttrs.src.name}/${sourceRoot}";
nativeBuildInputs = nativeBuildInputs ++ [
wrapGAppsHook3
gobject-introspection
meson
pkg-config
ninja
vala
wayland
wayland-scanner
python3
];
buildInputs = [ glib ] ++ buildInputs;
meta = {
homepage = "https://aylur.github.io/astal/guide/libraries/${website-path}";
license = lib.licenses.lgpl21;
maintainers = with lib.maintainers; [ perchun ];
platforms = [
"aarch64-linux"
"x86_64-linux"
];
} // meta;
}
);
in
args:
# to support (finalAttrs: {...})
if builtins.typeOf args == "function" then
buildAstalModule (lib.fix args)
else
buildAstalModule args