about summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2017-11-05 11:13:49 +0100
committerDaiderd Jordan <daiderd@gmail.com>2017-11-05 11:33:42 +0100
commitcf9e6f3a1819cc5bc73753e4e7da40943f72714b (patch)
tree76afd2600b2e56efadce00fdd8173bceb142f2a5 /pkgs/development/compilers
parent2805444f9632f97b820faed4c5919ea88c1af447 (diff)
downloadnixlib-cf9e6f3a1819cc5bc73753e4e7da40943f72714b.tar
nixlib-cf9e6f3a1819cc5bc73753e4e7da40943f72714b.tar.gz
nixlib-cf9e6f3a1819cc5bc73753e4e7da40943f72714b.tar.bz2
nixlib-cf9e6f3a1819cc5bc73753e4e7da40943f72714b.tar.lz
nixlib-cf9e6f3a1819cc5bc73753e4e7da40943f72714b.tar.xz
nixlib-cf9e6f3a1819cc5bc73753e4e7da40943f72714b.tar.zst
nixlib-cf9e6f3a1819cc5bc73753e4e7da40943f72714b.zip
cargo: fix darwin build
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/rust/cargo.nix21
1 files changed, 14 insertions, 7 deletions
diff --git a/pkgs/development/compilers/rust/cargo.nix b/pkgs/development/compilers/rust/cargo.nix
index 682e85ce867b..fb3001bbf17b 100644
--- a/pkgs/development/compilers/rust/cargo.nix
+++ b/pkgs/development/compilers/rust/cargo.nix
@@ -1,7 +1,11 @@
 { stdenv, fetchFromGitHub, file, curl, pkgconfig, python, openssl, cmake, zlib
 , makeWrapper, libiconv, cacert, rustPlatform, rustc, libgit2, darwin
 , version, srcSha, cargoSha256
-, patches ? []}:
+, patches ? [] }:
+
+let
+  inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+in
 
 rustPlatform.buildRustPackage rec {
   name = "cargo-${version}";
@@ -21,13 +25,17 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ file curl python openssl cmake zlib makeWrapper libgit2 ]
-    # FIXME: Use impure version of CoreFoundation because of missing symbols.
-    # CFURLSetResourcePropertyForKey is defined in the headers but there's no
-    # corresponding implementation in the sources from opensource.apple.com.
-    ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.CoreFoundation libiconv ];
+    ++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation libiconv ];
 
   LIBGIT2_SYS_USE_PKG_CONFIG=1;
 
+  # FIXME: Use impure version of CoreFoundation because of missing symbols.
+  # CFURLSetResourcePropertyForKey is defined in the headers but there's no
+  # corresponding implementation in the sources from opensource.apple.com.
+  preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+    export NIX_CFLAGS_COMPILE="-F${CoreFoundation}/Library/Frameworks $NIX_CFLAGS_COMPILE"
+  '';
+
   postInstall = ''
     # NOTE: We override the `http.cainfo` option usually specified in
     # `.cargo/config`. This is an issue when users want to specify
@@ -36,8 +44,7 @@ rustPlatform.buildRustPackage rec {
     wrapProgram "$out/bin/cargo" \
       --suffix PATH : "${rustc}/bin" \
       --set CARGO_HTTP_CAINFO "${cacert}/etc/ssl/certs/ca-bundle.crt" \
-      --set SSL_CERT_FILE "${cacert}/etc/ssl/certs/ca-bundle.crt" \
-      ${stdenv.lib.optionalString stdenv.isDarwin ''--suffix DYLD_LIBRARY_PATH : "${rustc}/lib"''}
+      --set SSL_CERT_FILE "${cacert}/etc/ssl/certs/ca-bundle.crt"
   '';
 
   checkPhase = ''