templates/rust/cargo-stable/crane/flake.nix

52 lines
1.4 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
systems.url = "github:nix-systems/default";
crane.url = "github:ipetkov/crane";
};
outputs = { self, nixpkgs, systems, crane, ... }:
let eachSystem = nixpkgs.lib.genAttrs (import systems);
in {
packages = eachSystem (system:
let pkgs = nixpkgs.legacyPackages.${system};
in {
hello = pkgs.callPackage ./package.nix {
craneLib = crane.mkLib pkgs;
};
default = self.packages.${system}.hello;
});
devShells = eachSystem (system:
let pkgs = nixpkgs.legacyPackages.${system};
in {
default = import ./shell.nix { inherit pkgs crane; };
});
checks = eachSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
craneLib = crane.mkLib pkgs;
crate = self.packages.${system}.default;
in {
inherit crate;
clippy = craneLib.cargoClippy (
crate.commonArgs
// {
inherit (crate) cargoArtifacts;
cargoClippyExtraArgs = "--all-targets -- --deny warnings";
}
);
doc = craneLib.cargoDoc (
crate.commonArgs
// {
inherit (crate) cargoArtifacts;
env.RUSTDOCFLAGS = "--deny warnings";
}
);
});
};
}