aerogramme/flake.nix

53 lines
1.4 KiB
Nix

{
description = "Aerogramme";
inputs = {
cargo2nix = {
type = "github";
owner = "Alexis211";
repo = "cargo2nix";
ref = "custom_unstable";
};
nixpkgs.url = "github:NixOS/nixpkgs/master";
#cargo2nix.url = "github:cargo2nix/cargo2nix/release-0.11.0";
fenix.url = "github:nix-community/fenix/monthly";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, cargo2nix, flake-utils, fenix }:
flake-utils.lib.eachSystem [
"x86_64-unknown-linux-musl"
"aarch64-unknown-linux-musl"
"armv6l-unknown-linux-musleabihf"
] (targetHost: let
pkgs = import nixpkgs {
system = "x86_64-linux"; # hardcoded as we will cross compile
crossSystem = {
config = targetHost; # here we cross compile
isStatic = true;
};
overlays = [cargo2nix.overlays.default];
};
shell = pkgs.mkShell {
buildInputs = [
cargo2nix.packages.x86_64-linux.default
];
};
rustPkgs = pkgs.rustBuilder.makePackageSet({
rustToolchain = with fenix.packages.x86_64-linux; combine [
minimal.cargo
minimal.rustc
targets.${targetHost}.latest.rust-std
];
packageFun = import ./Cargo.nix;
});
in {
devShells.default = shell;
packages.aerogramme = (rustPkgs.workspace.aerogramme {}).bin;
packages.default = self.packages.${targetHost}.aerogramme;
});
}