diff --git a/Cargo.toml b/Cargo.toml index 5793b00..60d7a9f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,9 @@ thiserror = "2.0.18" version = "1.30" default-features = false features = ["std", "float"] +[dependencies.gmp-mpfr-sys] +version = "*" +features = ["force-cross"] [profile.release] lto = true diff --git a/flake.nix b/flake.nix index 26109ec..99a051a 100644 --- a/flake.nix +++ b/flake.nix @@ -10,31 +10,43 @@ inputs.flake-utils.lib.eachDefaultSystem ( system: let - pkgs = import inputs.nixpkgs { inherit system; }; + pkgs = inputs.nixpkgs.legacyPackages.${system}; + lib = inputs.nixpkgs.lib; + + src = lib.sourceFilesBySuffices ./. [ + "Cargo.toml" + "Cargo.lock" + ".rs" + ]; - src = ./.; cargoToml = fromTOML (builtins.readFile "${src}/Cargo.toml"); name = cargoToml.package.name; - crate = pkgs.rustPlatform.buildRustPackage { - inherit name src; + bin = + { + rustPlatform, + m4, + }: + rustPlatform.buildRustPackage { + inherit name src; - cargoLock.lockFile = "${src}/Cargo.lock"; + cargoLock.lockFile = "${src}/Cargo.lock"; - nativeBuildInputs = with pkgs; [ - m4 - ]; - }; + nativeBuildInputs = [ + m4 + ]; + }; + + default = pkgs.callPackage bin { }; in { - packages.default = crate; + packages.default = default; + packages.static = pkgs.pkgsStatic.callPackage bin { }; devShells.default = pkgs.mkShell { - inputsFrom = [ crate ]; + inputsFrom = [ default ]; packages = with pkgs; [ - rustc - cargo clippy rustfmt rust-analyzer