summary refs log tree commit diff
path: root/pkgs/build-support/rust
diff options
context:
space:
mode:
authorMichael Eden <themichaeleden@gmail.com>2019-02-26 00:52:01 -0500
committerJohn Ericson <git@JohnEricson.me>2019-03-29 11:11:00 -0400
commitbdd3c3fdcb11416d2e2ef459c2e28caa2235f0f3 (patch)
tree513fb3cfbc45b54f11ab1eea7a426265ee8a7cef /pkgs/build-support/rust
parent60761e65ba38280ce19e1d7e3c4ffd883212a96c (diff)
downloadnixpkgs-bdd3c3fdcb11416d2e2ef459c2e28caa2235f0f3.tar
nixpkgs-bdd3c3fdcb11416d2e2ef459c2e28caa2235f0f3.tar.gz
nixpkgs-bdd3c3fdcb11416d2e2ef459c2e28caa2235f0f3.tar.bz2
nixpkgs-bdd3c3fdcb11416d2e2ef459c2e28caa2235f0f3.tar.lz
nixpkgs-bdd3c3fdcb11416d2e2ef459c2e28caa2235f0f3.tar.xz
nixpkgs-bdd3c3fdcb11416d2e2ef459c2e28caa2235f0f3.tar.zst
nixpkgs-bdd3c3fdcb11416d2e2ef459c2e28caa2235f0f3.zip
rust: allow building in debug or release modes
Diffstat (limited to 'pkgs/build-support/rust')
-rw-r--r--pkgs/build-support/rust/default.nix8
1 files changed, 5 insertions, 3 deletions
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix
index ad8488494e4..028390640d1 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/default.nix
@@ -13,11 +13,13 @@
 , cargoUpdateHook ? ""
 , cargoDepsHook ? ""
 , cargoBuildFlags ? []
+, buildType ? "release"
 
 , cargoVendorDir ? null
 , ... } @ args:
 
 assert cargoVendorDir == null -> cargoSha256 != "unset";
+assert buildType == "release" || buildType == "debug";
 
 let
   cargoDeps = if cargoVendorDir == null
@@ -42,7 +44,7 @@ let
   cxxForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
   ccForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
   cxxForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
-  releaseDir = "target/${stdenv.hostPlatform.config}/release";
+  releaseDir = "target/${stdenv.hostPlatform.config}/${buildType}";
 
 in stdenv.mkDerivation (args // {
   inherit cargoDeps;
@@ -98,7 +100,7 @@ in stdenv.mkDerivation (args // {
       "CC_${stdenv.hostPlatform.config}"="${ccForHost}" \
       "CXX_${stdenv.hostPlatform.config}"="${cxxForHost}" \
       cargo build \
-        --release \
+        --${buildType} \
         --target ${stdenv.hostPlatform.config} \
         --frozen ${concatStringsSep " " cargoBuildFlags}
     )
@@ -106,7 +108,7 @@ in stdenv.mkDerivation (args // {
     # rename the output dir to a architecture independent one
     mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${releaseDir}$')
     for target in "''${targets[@]}"; do
-      rm -rf "$target/../../release"
+      rm -rf "$target/../../${buildType}"
       ln -srf "$target" "$target/../../"
     done