{ description = "A basic flake"; inputs = { systems.url = "github:nix-systems/default-linux"; nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; fenix.url = "github:nix-community/fenix/monthly"; }; outputs = { self, systems, nixpkgs, fenix, } @ inputs: let eachSystem = nixpkgs.lib.genAttrs (import systems); pkgsFor = eachSystem (system: import nixpkgs { localSystem.system = system; overlays = [fenix.overlays.default]; }); 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;}; }; }