diff --git a/Cargo.toml b/Cargo.toml index 388def1..71ddf90 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,9 +47,3 @@ pedantic = "warn" perf = "warn" style = "warn" suspicious = "deny" - -[profile.release] -codegen-units = 1 -opt-level = "s" -panic = "abort" -strip = "symbols" diff --git a/nix/deployment/static.nix b/nix/deployment/static.nix index 83d7b2c..319d974 100644 --- a/nix/deployment/static.nix +++ b/nix/deployment/static.nix @@ -28,7 +28,7 @@ buildWith = rustPlatform: self'.packages.refraction.override { inherit rustPlatform; - lto = true; + optimizeSize = true; }; in { packages = diff --git a/nix/derivation.nix b/nix/derivation.nix index 4736d57..9d95a29 100644 --- a/nix/derivation.nix +++ b/nix/derivation.nix @@ -4,7 +4,8 @@ rustPlatform, darwin, self, - lto ? false, + lto ? true, + optimizeSize ? false, }: rustPlatform.buildRustPackage { pname = "refraction"; @@ -35,11 +36,22 @@ rustPlatform.buildRustPackage { SystemConfiguration ]); - env = { - CARGO_BUILD_RUSTFLAGS = lib.concatStringsSep " " ( - lib.optionals lto ["-C" "lto=thin" "-C" "embed-bitcode=yes" "-Zdylib-lto"] + env = let + toRustFlags = lib.mapAttrs' ( + name: + lib.nameValuePair + "CARGO_PROFILE_RELEASE_${lib.toUpper (builtins.replaceStrings ["-"] ["_"] name)}" ); - }; + in + lib.optionalAttrs lto (toRustFlags { + lto = "thin"; + }) + // lib.optionalAttrs optimizeSize (toRustFlags { + codegen-units = "1"; + opt-level = "s"; + panic = "abort"; + strip = "symbols"; + }); meta = with lib; { mainProgram = "refraction"; diff --git a/nix/packages.nix b/nix/packages.nix index 56c5c82..4d1c9cd 100644 --- a/nix/packages.nix +++ b/nix/packages.nix @@ -6,8 +6,11 @@ }: { packages = { refraction = pkgs.callPackage ./derivation.nix {inherit self;}; - default = self'.packages.refraction; }; }; + + flake.overlays.default = _: prev: { + refraction = prev.callPackage ./derivation.nix {inherit self;}; + }; }