diff --git a/flake.nix b/flake.nix index 6bd2392..9f1a4b3 100644 --- a/flake.nix +++ b/flake.nix @@ -22,50 +22,36 @@ pkgs = import nixpkgs {inherit system overlays;}; isLinux = pkgs.lib.hasInfix "linux" system; - rustToolchain = pkgs.rust-bin.stable.latest.default.override { - extensions = ["rust-src" "clippy" "rustfmt"]; - targets = pkgs.lib.optionals isLinux ["x86_64-unknown-linux-musl"]; - }; - buildPkgs = if isLinux then pkgs.pkgsMusl else pkgs; + rustToolchain = pkgs.rust-bin.stable.latest.default.override { + extensions = ["rust-src" "clippy" "rustfmt"]; + targets = pkgs.lib.optionals isLinux ["x86_64-unknown-linux-musl"]; + }; + generatedCargoNix = crate2nix.tools.${system}.generatedCargoNix { name = "improvise"; src = ./.; }; + musliTarget = "x86_64-unknown-linux-musl"; + cargoNix = import generatedCargoNix { - inherit pkgs; - buildRustCrateForPkgs = pkgs: - buildPkgs.buildRustCrate.override { - rustc = rustToolchain; - cargo = rustToolchain; - }; + pkgs = pkgs; }; in { - devShells.default = pkgs.mkShell ({ - nativeBuildInputs = - [ - rustToolchain - pkgs.pkg-config - pkgs.rust-analyzer - crate2nix.packages.${system}.default - ] - ++ pkgs.lib.optionals isLinux [ - pkgs.gcc - pkgs.pkgsMusl.stdenv.cc - ]; - - RUST_BACKTRACE = "1"; - } - // pkgs.lib.optionalAttrs isLinux { - CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER = "${pkgs.gcc}/bin/gcc"; - CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER = "${pkgs.pkgsMusl.stdenv.cc}/bin/cc"; - CARGO_BUILD_TARGET = "x86_64-unknown-linux-musl"; - }); + devShells.default = pkgs.mkShell { + nativeBuildInputs = [ + rustToolchain + pkgs.pkg-config + pkgs.rust-analyzer + crate2nix.packages.${system}.default + ]; + RUST_BACKTRACE = "1"; + }; packages.default = cargoNix.rootCrate.build; });