summary refs log tree commit diff
path: root/pkgs/build-support/rust
diff options
context:
space:
mode:
authorAndrew Childs <lorne@cons.org.nz>2018-01-18 00:00:20 +0900
committerAndrew Childs <lorne@cons.org.nz>2018-01-18 20:42:00 +0900
commit62dcb3d5d0d22f10a128a20a3acf099b2b66bf79 (patch)
tree57e456d85eaa2aef5ececd9e08ab59f859f901ea /pkgs/build-support/rust
parentd02d062c9bca6cb7e4f4b103dba0e61f9adf28e4 (diff)
downloadnixlib-62dcb3d5d0d22f10a128a20a3acf099b2b66bf79.tar
nixlib-62dcb3d5d0d22f10a128a20a3acf099b2b66bf79.tar.gz
nixlib-62dcb3d5d0d22f10a128a20a3acf099b2b66bf79.tar.bz2
nixlib-62dcb3d5d0d22f10a128a20a3acf099b2b66bf79.tar.lz
nixlib-62dcb3d5d0d22f10a128a20a3acf099b2b66bf79.tar.xz
nixlib-62dcb3d5d0d22f10a128a20a3acf099b2b66bf79.tar.zst
nixlib-62dcb3d5d0d22f10a128a20a3acf099b2b66bf79.zip
buildRustCrate: Allow arbitrary attributes in crateOverrides
Diffstat (limited to 'pkgs/build-support/rust')
-rw-r--r--pkgs/build-support/rust/build-rust-crate.nix10
1 files changed, 8 insertions, 2 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate.nix b/pkgs/build-support/rust/build-rust-crate.nix
index 72bb3b80492a..e36fab36bf97 100644
--- a/pkgs/build-support/rust/build-rust-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate.nix
@@ -297,9 +297,15 @@ in
 crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides }:
 
 let crate = crate_ // (lib.attrByPath [ crate_.crateName ] (attr: {}) crateOverrides crate_);
+    processedAttrs = [
+      "src" "buildInputs" "crateBin" "crateLib" "libName" "libPath"
+      "buildDependencies" "dependencies" "features"
+      "crateName" "version" "build" "authors" "colors"
+    ];
+    extraDerivationAttrs = lib.filterAttrs (n: v: ! lib.elem n processedAttrs) crate;
     buildInputs_ = buildInputs;
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
 
     inherit (crate) crateName;
 
@@ -372,7 +378,7 @@ stdenv.mkDerivation rec {
     };
     installPhase = installCrate crateName;
 
-}) {
+} // extraDerivationAttrs)) {
   rust = rustc;
   release = true;
   verbose = true;