From 2b25e0454c60bb30b9a531b94836ca0d64e6c5e1 Mon Sep 17 00:00:00 2001 From: Vika Date: Mon, 19 Aug 2024 21:41:48 +0300 Subject: Initial Nix & Cargo boilerplate for a Relm4 project --- default.nix | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 default.nix (limited to 'default.nix') 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'; + }; +}) -- cgit 1.4.1