summary refs log tree commit diff
path: root/pkgs/development/tools/rust/cargo-geiger/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/rust/cargo-geiger/default.nix')
-rw-r--r--pkgs/development/tools/rust/cargo-geiger/default.nix15
1 files changed, 12 insertions, 3 deletions
diff --git a/pkgs/development/tools/rust/cargo-geiger/default.nix b/pkgs/development/tools/rust/cargo-geiger/default.nix
index 2512a9ec4f4..70601faaf6d 100644
--- a/pkgs/development/tools/rust/cargo-geiger/default.nix
+++ b/pkgs/development/tools/rust/cargo-geiger/default.nix
@@ -1,6 +1,8 @@
 { stdenv, lib, fetchFromGitHub
-, rustPlatform, pkgconfig
-, openssl, Security }:
+, rustPlatform, pkgconfig, openssl
+# darwin dependencies
+, Security, CoreFoundation, libiconv
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-geiger";
@@ -26,9 +28,16 @@ rustPlatform.buildRustPackage rec {
     --skip test_package::case_6
   '';
 
-  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security libiconv ];
   nativeBuildInputs = [ pkgconfig ];
 
+  # 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"
+  '';
+
   meta = with lib; {
     description = "Detects usage of unsafe Rust in a Rust crate and its dependencies.";
     homepage = https://github.com/anderejd/cargo-geiger;