73 lines
1.3 KiB
Nix
73 lines
1.3 KiB
Nix
{
|
|
inputs,
|
|
lib,
|
|
# Common dependencies for the plugin
|
|
glib,
|
|
makeWrapper,
|
|
rustPlatform,
|
|
atk,
|
|
gtk3,
|
|
gtk-layer-shell,
|
|
pkg-config,
|
|
librsvg,
|
|
cargo,
|
|
rustc,
|
|
# Generic args
|
|
name,
|
|
lockFile,
|
|
extraInputs ? [], # allow appending buildInputs
|
|
...
|
|
}: let
|
|
cargoToml = builtins.fromTOML (builtins.readFile ../../plugins/${name}/Cargo.toml);
|
|
pname = cargoToml.package.name;
|
|
version = cargoToml.package.version;
|
|
in
|
|
rustPlatform.buildRustPackage {
|
|
inherit pname version;
|
|
|
|
src = builtins.path {
|
|
path = lib.sources.cleanSource inputs.self;
|
|
name = "${pname}-${version}";
|
|
};
|
|
cargoLock = {
|
|
inherit lockFile;
|
|
};
|
|
|
|
strictDeps = true;
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
makeWrapper
|
|
];
|
|
|
|
buildInputs =
|
|
[
|
|
glib
|
|
atk
|
|
gtk3
|
|
librsvg
|
|
gtk-layer-shell
|
|
]
|
|
++ extraInputs;
|
|
|
|
doCheck = true;
|
|
checkInputs = [
|
|
cargo
|
|
rustc
|
|
];
|
|
|
|
copyLibs = true;
|
|
cargoBuildFlags = ["-p ${name}"];
|
|
buildAndTestSubdir = "plugins/${name}";
|
|
|
|
CARGO_BUILD_INCREMENTAL = "false";
|
|
RUST_BACKTRACE = "full";
|
|
|
|
meta = {
|
|
description = "The ${name} plugin for Anyrun";
|
|
homepage = "https://github.com/anyrun-org/anyrun";
|
|
license = [lib.licenses.gpl3];
|
|
maintainers = with lib.maintainers; [NotAShelf n3oney];
|
|
};
|
|
}
|