rust-nix-template/flake.nix

55 lines
1.6 KiB
Nix
Raw Normal View History

2021-04-07 00:17:50 +02:00
{
description = "bouncy";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
rust-overlay.url = "github:oxalica/rust-overlay";
utils.url = "github:numtide/flake-utils";
naersk.url = "github:nmattia/naersk";
2021-04-07 05:25:05 +02:00
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
2021-04-07 00:17:50 +02:00
};
outputs = { self, nixpkgs, utils, rust-overlay, naersk, ... }:
utils.lib.eachDefaultSystem
(system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [
rust-overlay.overlay
(self: super: {
# Because rust-overlay bundles multple rust packages into one
# derivation, specify that mega-bundle here, so that naersk
# will use them automatically.
rustc = self.rust-bin.stable.latest.default;
cargo = self.rust-bin.stable.latest.default;
})
2021-04-07 00:17:50 +02:00
];
};
naersk-lib = naersk.lib."${system}";
in rec {
# `nix build`
packages.bouncy = naersk-lib.buildPackage {
pname = "bouncy";
root = ./.;
};
defaultPackage = packages.bouncy;
# `nix run`
apps.bouncy = utils.lib.mkApp {
drv = packages.bouncy;
};
defaultApp = apps.bouncy;
# `nix develop`
devShell = pkgs.mkShell {
nativeBuildInputs = with pkgs; [ rustc cargo ];
RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
};
2021-04-07 00:17:50 +02:00
}
);
}