Files
tricc/flake.nix
2023-08-14 14:19:17 +05:30

81 lines
1.9 KiB
Nix

{
description = "tricc";
inputs = {
nixpkgs.url = github:NixOS/nixpkgs/release-22.11;
crane = {
url = github:ipetkov/crane;
inputs.nixpkgs.follows = "nixpkgs";
};
fenix = {
url = github:nix-community/fenix;
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = github:numtide/flake-utils;
};
outputs = inputs@{ self, nixpkgs, crane, fenix, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ fenix.overlays.default ];
};
inherit (pkgs) lib;
toolchain = pkgs.fenix.fromToolchainFile {
file = ./rust-toolchain.toml;
sha256 = "sha256-n8LtGbpj/yCUGo0NFJ7FNv9fSdT9oKEUl+EPLg06JdQ=";
};
craneLib = (crane.mkLib pkgs).overrideToolchain toolchain;
src = craneLib.cleanCargoSource (craneLib.path ./.);
commonArgs = { inherit src; };
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
tricc = craneLib.buildPackage (commonArgs // {
inherit cargoArtifacts;
doCheck = false;
});
in
{
packages = {
inherit tricc;
default = tricc;
# not using flake checks to run them individually
checks = {
clippy = craneLib.cargoClippy (commonArgs // {
inherit cargoArtifacts;
});
fmt = craneLib.cargoFmt {
inherit src;
};
doc = craneLib.cargoDoc (commonArgs // {
inherit cargoArtifacts;
});
nextest = craneLib.cargoNextest (commonArgs // {
inherit cargoArtifacts;
partitions = 1;
partitionType = "count";
});
};
};
devShells.default = pkgs.mkShell {
nativeBuildInputs = [ toolchain ];
};
formatter = pkgs.nixpkgs-fmt;
});
}