diff options
Diffstat (limited to 'default.nix')
-rw-r--r-- | default.nix | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..24c43eb --- /dev/null +++ b/default.nix @@ -0,0 +1,44 @@ +{ craneLib, lib +, pkg-config +, gtk4, libadwaita, libpanel +}: + +let + src = let + suffixes = [ ]; + suffixFilter = name: type: let + base = baseNameOf (toString name); + in type == "directory" || lib.any (ext: lib.hasSuffix ext base) suffixes; + + in lib.cleanSourceWith { + src = ./.; # The original, unfiltered source + filter = path: type: (suffixFilter path type) || (craneLib.filterCargoSources path type); + name = "source"; # Be reproducible, regardless of the directory name + }; + + args = { + # pname and version are read from Cargo.toml + inherit src; + strictDeps = true; + + # cargoExtraArgs can be used to inject features + + buildInputs = [ gtk4 libadwaita libpanel ]; + nativeBuildInputs = [ pkg-config ]; + + meta = with lib.meta; { + maintainers = with lib.maintainers; [ vikanezrimaya ]; + platforms = ["aarch64-linux" "x86_64-linux"]; + mainProgram = "bowl"; + }; + }; + + cargoArtifacts = craneLib.buildDepsOnly args; + args' = args // { inherit cargoArtifacts; }; + +in craneLib.buildPackage (args' // { + passthru = { + inherit cargoArtifacts; + clippy = craneLib.cargoClippy args'; + }; +}) |