summary refs log tree commit diff
path: root/pkgs/build-support/rust/default-crate-overrides.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/rust/default-crate-overrides.nix')
-rw-r--r--pkgs/build-support/rust/default-crate-overrides.nix31
1 files changed, 30 insertions, 1 deletions
diff --git a/pkgs/build-support/rust/default-crate-overrides.nix b/pkgs/build-support/rust/default-crate-overrides.nix
index c074d46a7f75..f4020ab30964 100644
--- a/pkgs/build-support/rust/default-crate-overrides.nix
+++ b/pkgs/build-support/rust/default-crate-overrides.nix
@@ -1,9 +1,38 @@
-{ pkgconfig, sqlite, openssl, ... }:
+{ stdenv, pkgconfig, curl, darwin, libiconv, libgit2, libssh2,
+  openssl, sqlite, zlib, ... }:
 
+let
+  inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+in
 {
+  cargo = attrs: {
+    buildInputs = [ openssl zlib curl ]
+      ++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation libiconv ];
+    # TODO: buildRustCrate seems to use incorrect default inference
+    crateBin = [ {  name = "cargo"; path = "src/bin/cargo.rs"; } ];
+  };
+  cargo-vendor = attrs: {
+    buildInputs = [ openssl zlib curl ];
+    # TODO: this defaults to cargo_vendor; needs to be cargo-vendor to
+    # be considered a cargo subcommand.
+    crateBin = [ { name = "cargo-vendor"; path = "src/main.rs"; } ];
+  };
+  curl-sys = attrs: {
+    buildInputs = [ pkgconfig curl ];
+  };
+  libgit2-sys = attrs: {
+    LIBGIT2_SYS_USE_PKG_CONFIG = true;
+    buildInputs = [ pkgconfig openssl zlib libgit2 ];
+  };
   libsqlite3-sys = attrs: {
     buildInputs = [ pkgconfig sqlite ];
   };
+  libssh2-sys = attrs: {
+    buildInputs = [ pkgconfig openssl zlib libssh2 ];
+  };
+  openssl = attrs: {
+    buildInputs = [ openssl ];
+  };
   openssl-sys = attrs: {
     buildInputs = [ pkgconfig openssl ];
   };