diff --git a/flake.nix b/flake.nix index 719cff7..25cf2b3 100644 --- a/flake.nix +++ b/flake.nix @@ -9,36 +9,35 @@ }; }; - outputs = - { - self, - nixpkgs, - fenix, - }: - let - systems = [ - "x86_64-linux" - "aarch64-linux" - "x86_64-darwin" - "aarch64-darwin" - ]; - forAllSystems = fn: nixpkgs.lib.genAttrs systems (system: fn system); - in - { - devShells = forAllSystems ( - system: - let - pkgs = nixpkgs.legacyPackages.${system}; - fenixPkgs = fenix.packages.${system}; - toolchain = fenixPkgs.fromToolchainFile { - file = ./rust-toolchain.toml; - sha256 = "sha256-vra6TkHITpwRyA5oBKAHSX0Mi6CBDNQD+ryPSpxFsfg="; - }; - in - { - default = pkgs.mkShell.override { stdenv = pkgs.clangStdenv; } { - RUST_SRC_PATH = "${toolchain}/lib/rustlib/src/rust/library"; - packages = [ + outputs = { + self, + nixpkgs, + fenix, + }: let + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + forAllSystems = fn: nixpkgs.lib.genAttrs systems (system: fn (pkgsFor system) (toolchainFor system)); + pkgsFor = system: + import nixpkgs { + system = system; + }; + toolchainFor = system: + fenix.packages.${system}.fromToolchainFile { + file = ./rust-toolchain.toml; + sha256 = "sha256-vra6TkHITpwRyA5oBKAHSX0Mi6CBDNQD+ryPSpxFsfg="; + }; + cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml); + in { + devShells = forAllSystems ( + pkgs: toolchain: { + default = pkgs.mkShell.override {stdenv = pkgs.clangStdenv;} { + RUST_SRC_PATH = "${toolchain}/lib/rustlib/src/rust/library"; + packages = + [ toolchain pkgs.treefmt pkgs.shfmt @@ -53,8 +52,17 @@ pkgs.apple-sdk pkgs.libiconv ]; - }; - } - ); - }; + }; + } + ); + packages = forAllSystems (pkgs: toolchain: rec { + sukr = pkgs.rustPlatform.buildRustPackage { + pname = cargoToml.package.name; + version = cargoToml.package.version; + src = ./.; + cargoHash = "sha256-mPm8Pe4W9TyDuuXLHWqA9DzbkTyR1kkfLZ3SmEt+dUc="; + }; + default = sukr; + }); + }; }