{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
crane.url = "github:ipetkov/crane";
};
outputs =
{
self,
nixpkgs,
crane,
}:
let
inherit (nixpkgs) lib;
supportedSystems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
];
in
{
packages = lib.genAttrs supportedSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
craneLib = crane.mkLib pkgs;
src = craneLib.cleanCargoSource ./.;
commonArgs = {
inherit src;
strictDeps = true;
buildInputs = [
];
};
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
in
{
default = craneLib.buildPackage (
commonArgs
// {
inherit cargoArtifacts;
}
);
}
);
devShells = lib.genAttrs supportedSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
default = pkgs.mkShell {
inputsFrom = [
self.packages.${system}.default
];
nativeBuildInputs = with pkgs; [
rust-analyzer
];
};
}
);
};
}