summary refs log tree commit diff
path: root/pkgs/build-support/rust/build-rust-crate
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/rust/build-rust-crate')
-rw-r--r--pkgs/build-support/rust/build-rust-crate/configure-crate.nix3
-rw-r--r--pkgs/build-support/rust/build-rust-crate/helpers.nix11
-rw-r--r--pkgs/build-support/rust/build-rust-crate/install-crate.nix8
3 files changed, 15 insertions, 7 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 37fef2abd77..7630c6471dc 100644
--- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -71,6 +71,9 @@ in ''
   export CARGO_PKG_VERSION_MAJOR=${builtins.elemAt version 0}
   export CARGO_PKG_VERSION_MINOR=${builtins.elemAt version 1}
   export CARGO_PKG_VERSION_PATCH=${builtins.elemAt version 2}
+  export NUM_JOBS=1
+  export RUSTC="rustc"
+  export RUSTDOC="rustdoc"
   if [[ -n "${versionPre}" ]]; then
     export CARGO_PKG_VERSION_PRE="${versionPre}"
   fi
diff --git a/pkgs/build-support/rust/build-rust-crate/helpers.nix b/pkgs/build-support/rust/build-rust-crate/helpers.nix
index e04324684e5..8a0a62434ec 100644
--- a/pkgs/build-support/rust/build-rust-crate/helpers.nix
+++ b/pkgs/build-support/rust/build-rust-crate/helpers.nix
@@ -2,6 +2,7 @@
 {
   kernel = stdenv.hostPlatform.parsed.kernel.name;
   abi = stdenv.hostPlatform.parsed.abi.name;
+  cpu = stdenv.hostPlatform.parsed.cpu.name;
    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
    mapFeatures = features: map (fun: fun { features = features; });
    mkFeatures = feat: lib.lists.foldl (features: featureName:
@@ -11,10 +12,12 @@
        features
    ) [] (builtins.attrNames feat);
   include = includedFiles: src: builtins.filterSource (path: type:
-    lib.lists.any (f:
-      let p = toString (src + ("/" + f)); in
-      (path == p) || (type == "directory" && lib.strings.hasPrefix path p)
-    ) includedFiles
+     lib.lists.any (f:
+       let p = toString (src + ("/" + f));
+           suff = lib.strings.removePrefix p path;
+       in
+       suff == "" || (lib.strings.hasPrefix "/" suff)
+     ) includedFiles
   ) src;
   exclude = excludedFiles: src: builtins.filterSource (path: type:
     lib.lists.all (f:
diff --git a/pkgs/build-support/rust/build-rust-crate/install-crate.nix b/pkgs/build-support/rust/build-rust-crate/install-crate.nix
index c41df34ca39..3b0282621ea 100644
--- a/pkgs/build-support/rust/build-rust-crate/install-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/install-crate.nix
@@ -20,9 +20,11 @@ crateName: metadata:
     mkdir -p $out/lib
     cp -r target/build/* $out/lib # */
   fi
-  if [[ "$(ls -A target/bin)" ]]; then
-    mkdir -p $out/bin
-    cp -P target/bin/* $out/bin # */
+  if [[ -d target/bin ]]; then
+    if [[ "$(ls -A target/bin)" ]]; then
+      mkdir -p $out/bin
+      cp -P target/bin/* $out/bin # */
+    fi
   fi
   runHook postInstall
 ''