diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2022-05-01 18:01:03 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-01 18:01:03 +0000 |
commit | da9b549e31a9b6d6cb208f7c627df4bec4698054 (patch) | |
tree | 135619601b38d0b2f4a47d4b21b278e6d0a5e542 /pkgs/build-support | |
parent | b4cd84e42197cea3f2ddc8d047158d2980f0abef (diff) | |
parent | adfcb57e27981eea2c6f3d0cc609119d6186dfaa (diff) |
Merge master into staging-next
Diffstat (limited to 'pkgs/build-support')
3 files changed, 9 insertions, 5 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix index 42c5f6ab3c0f3..b5db1ffa7fb51 100644 --- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix @@ -4,14 +4,15 @@ crateFeatures, crateRenames, libName, release, libPath, crateType, metadata, crateBin, hasCrateBin, extraRustcOpts, verbose, colors, - buildTests + buildTests, + codegenUnits }: let baseRustcOpts = [ (if release then "-C opt-level=3" else "-C debuginfo=2") - "-C codegen-units=$NIX_BUILD_CORES" + "-C codegen-units=${toString codegenUnits}" "--remap-path-prefix=$NIX_BUILD_TOP=/" (mkRustcDepArgs dependencies crateRenames) (mkRustcFeatureArgs crateFeatures) diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix index 1a9705591d6dc..5129777c9d51e 100644 --- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix @@ -2,6 +2,7 @@ { build , buildDependencies +, codegenUnits , colors , completeBuildDeps , completeDeps @@ -24,7 +25,7 @@ let version_ = lib.splitString "-" crateVersion; version = lib.splitVersion (lib.head version_); rustcOpts = lib.foldl' (opts: opt: opts + " " + opt) (if release then "-C opt-level=3" else "-C debuginfo=2") - (["-C codegen-units=$NIX_BUILD_CORES"] ++ extraRustcOptsForBuildRs); + (["-C codegen-units=${toString codegenUnits}"] ++ extraRustcOptsForBuildRs); buildDeps = mkRustcDepArgs buildDependencies crateRenames; authors = lib.concatStringsSep ":" crateAuthors; optLevel = if release then 3 else 0; diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix index 20b93b1921f84..eea1e3baeecaf 100644 --- a/pkgs/build-support/rust/build-rust-crate/default.nix +++ b/pkgs/build-support/rust/build-rust-crate/default.nix @@ -228,6 +228,7 @@ crate_: lib.makeOverridable "colors" "edition" "buildTests" + "codegenUnits" ]; extraDerivationAttrs = builtins.removeAttrs crate processedAttrs; nativeBuildInputs_ = nativeBuildInputs; @@ -315,6 +316,7 @@ crate_: lib.makeOverridable colors = lib.attrByPath [ "colors" ] "always" crate; extraLinkFlags = lib.concatStringsSep " " (crate.extraLinkFlags or [ ]); edition = crate.edition or null; + codegenUnits = if crate ? codegenUnits then crate.codegenUnits else 1; extraRustcOpts = lib.optionals (crate ? extraRustcOpts) crate.extraRustcOpts ++ extraRustcOpts_ @@ -329,13 +331,13 @@ crate_: lib.makeOverridable inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription crateFeatures crateRenames libName build workspace_member release libPath crateVersion extraLinkFlags extraRustcOptsForBuildRs - crateAuthors crateHomepage verbose colors; + crateAuthors crateHomepage verbose colors codegenUnits; }; buildPhase = buildCrate { inherit crateName dependencies crateFeatures crateRenames libName release libPath crateType metadata hasCrateBin crateBin verbose colors - extraRustcOpts buildTests; + extraRustcOpts buildTests codegenUnits; }; installPhase = installCrate crateName metadata buildTests; |