about summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorAndreas Rammhold <andreas@rammhold.de>2019-02-18 01:09:54 +0100
committerAndreas Rammhold <andreas@rammhold.de>2019-02-18 01:09:54 +0100
commit6a3b144d02d8b1215142be610ec9b8c1f2213094 (patch)
tree7f43525f1945303c50a32c94832b7a8fe82aff75 /pkgs/build-support
parent044a8a24ed2361154de316ad0ba82cba8fd7631c (diff)
downloadnixlib-6a3b144d02d8b1215142be610ec9b8c1f2213094.tar
nixlib-6a3b144d02d8b1215142be610ec9b8c1f2213094.tar.gz
nixlib-6a3b144d02d8b1215142be610ec9b8c1f2213094.tar.bz2
nixlib-6a3b144d02d8b1215142be610ec9b8c1f2213094.tar.lz
nixlib-6a3b144d02d8b1215142be610ec9b8c1f2213094.tar.xz
nixlib-6a3b144d02d8b1215142be610ec9b8c1f2213094.tar.zst
nixlib-6a3b144d02d8b1215142be610ec9b8c1f2213094.zip
buildRustCrate: support rust editions
In combination with carnix we can now build crates that require a
specific edition of rust features. A few crates started requiring that
already and having this in nixpkgs is just logical.
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/rust/build-rust-crate/default.nix6
1 files changed, 4 insertions, 2 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index 47a84e5ca2b8..fd7b6ec7ddaf 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -71,7 +71,7 @@ let crate = crate_ // (lib.attrByPath [ crate_.crateName ] (attr: {}) crateOverr
     processedAttrs = [
       "src" "buildInputs" "crateBin" "crateLib" "libName" "libPath"
       "buildDependencies" "dependencies" "features"
-      "crateName" "version" "build" "authors" "colors"
+      "crateName" "version" "build" "authors" "colors" "edition"
     ];
     extraDerivationAttrs = lib.filterAttrs (n: v: ! lib.elem n processedAttrs) crate;
     buildInputs_ = buildInputs;
@@ -136,7 +136,9 @@ stdenv.mkDerivation (rec {
         (crate.type or ["lib"]);
     colors = lib.attrByPath [ "colors" ] "always" crate;
     extraLinkFlags = builtins.concatStringsSep " " (crate.extraLinkFlags or []);
-    extraRustcOpts = (if crate ? extraRustcOpts then crate.extraRustcOpts else []) ++ extraRustcOpts_;
+    edition = crate.edition or null;
+    extraRustcOpts = (if crate ? extraRustcOpts then crate.extraRustcOpts else []) ++ extraRustcOpts_ ++ (lib.optional (edition != null) "--edition ${edition}");
+
     configurePhase = configureCrate {
       inherit crateName buildDependencies completeDeps completeBuildDeps
               crateFeatures libName build workspace_member release libPath crateVersion