diff options
author | Andreas Rammhold <andreas@rammhold.de> | 2019-02-18 00:10:36 +0100 |
---|---|---|
committer | Andreas Rammhold <andreas@rammhold.de> | 2019-02-18 00:10:36 +0100 |
commit | 044a8a24ed2361154de316ad0ba82cba8fd7631c (patch) | |
tree | 69a1e2fa8a92990aca6cdd39f161ed130ebfc5f8 /pkgs/build-support/rust/build-rust-crate/configure-crate.nix | |
parent | 5d42605b918f80a8cf4964ad42023791cae89e67 (diff) | |
download | nixpkgs-044a8a24ed2361154de316ad0ba82cba8fd7631c.tar nixpkgs-044a8a24ed2361154de316ad0ba82cba8fd7631c.tar.gz nixpkgs-044a8a24ed2361154de316ad0ba82cba8fd7631c.tar.bz2 nixpkgs-044a8a24ed2361154de316ad0ba82cba8fd7631c.tar.lz nixpkgs-044a8a24ed2361154de316ad0ba82cba8fd7631c.tar.xz nixpkgs-044a8a24ed2361154de316ad0ba82cba8fd7631c.tar.zst nixpkgs-044a8a24ed2361154de316ad0ba82cba8fd7631c.zip |
buildRustCrate: pass extraRustcOpts to configure crate
Previously build flags would not be available during the configure phase while they might be required to build the `build.rs` file.
Diffstat (limited to 'pkgs/build-support/rust/build-rust-crate/configure-crate.nix')
-rw-r--r-- | pkgs/build-support/rust/build-rust-crate/configure-crate.nix | 22 |
1 files changed, 20 insertions, 2 deletions
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 7630c6471dc..700dff8499f 100644 --- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix @@ -1,9 +1,27 @@ { lib, stdenv, echo_build_heading, noisily, makeDeps }: -{ build, buildDependencies, colors, completeBuildDeps, completeDeps, crateAuthors, crateFeatures, crateName, crateVersion, extraLinkFlags, libName, libPath, release, target_os, verbose, workspace_member }: +{ build +, buildDependencies +, colors +, completeBuildDeps +, completeDeps +, crateAuthors +, crateFeatures +, crateName +, crateVersion +, extraLinkFlags +, extraRustcOpts +, libName +, libPath +, release +, target_os +, verbose +, workspace_member }: let version_ = lib.splitString "-" crateVersion; versionPre = if lib.tail version_ == [] then "" else builtins.elemAt version_ 1; version = lib.splitString "." (lib.head version_); - rustcOpts = (if release then "-C opt-level=3" else "-C debuginfo=2"); + rustcOpts = lib.lists.foldl' (opts: opt: opts + " " + opt) + (if release then "-C opt-level=3" else "-C debuginfo=2") + (["-C codegen-units=1"] ++ extraRustcOpts); buildDeps = makeDeps buildDependencies; authors = lib.concatStringsSep ":" crateAuthors; optLevel = if release then 3 else 0; |