forcebot_rs/flake.nix

64 lines
1.6 KiB
Nix
Raw Normal View History

2023-10-22 08:35:09 -04:00
{
description = "A basic flake";
2023-10-22 08:35:09 -04:00
inputs = {
systems.url = "github:nix-systems/default-linux";
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
2024-02-19 21:27:24 -05:00
fenix.url = "github:nix-community/fenix/monthly";
2023-10-22 08:35:09 -04:00
};
2024-02-19 21:27:24 -05:00
outputs = {
self,
systems,
2024-02-19 21:27:24 -05:00
nixpkgs,
fenix,
} @ inputs: let
eachSystem = nixpkgs.lib.genAttrs (import systems);
pkgsFor = eachSystem (system:
import nixpkgs {
localSystem.system = system;
overlays = [fenix.overlays.default];
});
2023-10-22 08:35:09 -04:00
in {
packages = eachSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
version = (builtins.fromTOML (builtins.readFile ./Cargo.toml)).package.version;
in {
default = pkgsFor.${system}.rustPlatform.buildRustPackage {
pname = "forcebot_rs";
version = "${version}";
src = self;
cargoLock = {
lockFile = ./Cargo.lock;
};
nativeBuildInputs = with pkgs; [pkg-config];
buildInputs = with pkgs; [openssl];
doCheck = false;
};
});
devShells = eachSystem (system: {
default = pkgsFor.${system}.mkShell {
packages = with pkgsFor.${system}; [
nil
alejandra
rust-analyzer-nightly
(fenix.packages.${system}.complete.withComponents [
"cargo"
"clippy"
"rust-src"
"rustc"
"rustfmt"
])
];
RUST_BACKTRACE = 1;
RUST_SRC_PATH = "${fenix.packages.${system}.complete.rust-src}/lib/rustlib/src/rust/library";
};
});
nixosModules.default = import ./nix/module.nix {inherit self;};
2023-10-22 08:35:09 -04:00
};
}