biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / rust / bindgen / unwrapped.nix
blob036c3b76f19e7dbdc7695591be1204898e9298a3
1 { lib, fetchCrate, rustPlatform, clang, rustfmt
2 , runtimeShell
3 , bash
4 }:
5 let
6   # bindgen hardcodes rustfmt outputs that use nightly features
7   rustfmt-nightly = rustfmt.override { asNightly = true; };
8 in rustPlatform.buildRustPackage rec {
9   pname = "rust-bindgen-unwrapped";
10   version = "0.69.4";
12   src = fetchCrate {
13     pname = "bindgen-cli";
14     inherit version;
15     sha256 = "sha256-5fwJq1WsL3IEcVUjsyqKdQU8VufbbPk6TglwJg3C1Gw=";
16   };
18   cargoHash = "sha256-UROy/MyPBKJe+EaiUIDbOYKVbge0C9LsmfnsvOLEONE=";
20   buildInputs = [ clang.cc.lib ];
22   preConfigure = ''
23     export LIBCLANG_PATH="${clang.cc.lib}/lib"
24   '';
26   doCheck = true;
27   nativeCheckInputs = [ clang ];
29   RUSTFMT = "${rustfmt-nightly}/bin/rustfmt";
31   preCheck = ''
32     # for the ci folder, notably
33     patchShebangs .
34   '';
36   passthru = { inherit clang; };
38   meta = with lib; {
39     description = "Automatically generates Rust FFI bindings to C (and some C++) libraries";
40     longDescription = ''
41       Bindgen takes a c or c++ header file and turns them into
42       rust ffi declarations.
43     '';
44     homepage = "https://github.com/rust-lang/rust-bindgen";
45     license = with licenses; [ bsd3 ];
46     maintainers = with maintainers; [ johntitor ralith ];
47     mainProgram = "bindgen";
48     platforms = platforms.unix;
49   };