mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-02-09 00:00:04 +03:00
76 lines
1.3 KiB
Nix
76 lines
1.3 KiB
Nix
|
{ lib
|
||
|
, stdenv
|
||
|
, rustPlatform
|
||
|
, llvmPackages
|
||
|
, bcachefs
|
||
|
, pkg-config
|
||
|
|
||
|
, udev
|
||
|
, liburcu
|
||
|
, zstd
|
||
|
, keyutils
|
||
|
, libaio
|
||
|
|
||
|
, lz4 # liblz4
|
||
|
, libsodium
|
||
|
, libuuid
|
||
|
, zlib # zlib1g
|
||
|
, libscrypt
|
||
|
|
||
|
, rustfmt
|
||
|
|
||
|
, glibc
|
||
|
, ...
|
||
|
}: let
|
||
|
include = {
|
||
|
glibc = "${glibc.dev}/include";
|
||
|
clang = let libc = llvmPackages.libclang; in
|
||
|
"${libc.lib}/lib/clang/${libc.version}/include";
|
||
|
urcu = "${liburcu}/include";
|
||
|
zstd = "${zstd.dev}/include";
|
||
|
};
|
||
|
cargo = lib.trivial.importTOML ./Cargo.toml;
|
||
|
in rustPlatform.buildRustPackage {
|
||
|
pname = cargo.package.name;
|
||
|
version = cargo.package.version;
|
||
|
|
||
|
src = builtins.path { path = ./.; name = "bch_bindgen"; };
|
||
|
|
||
|
cargoLock = { lockFile = ./Cargo.lock; };
|
||
|
|
||
|
nativeBuildInputs = [ rustfmt pkg-config ];
|
||
|
buildInputs = [
|
||
|
|
||
|
# libaio
|
||
|
keyutils # libkeyutils
|
||
|
lz4 # liblz4
|
||
|
libsodium
|
||
|
liburcu
|
||
|
libuuid
|
||
|
zstd # libzstd
|
||
|
zlib # zlib1g
|
||
|
udev
|
||
|
libscrypt
|
||
|
libaio
|
||
|
];
|
||
|
|
||
|
LIBBCACHEFS_LIB ="${bcachefs.tools}/lib";
|
||
|
LIBBCACHEFS_INCLUDE = bcachefs.tools.src;
|
||
|
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
|
||
|
BINDGEN_EXTRA_CLANG_ARGS = lib.replaceStrings ["\n" "\t"] [" " ""] ''
|
||
|
-std=gnu99
|
||
|
-I${include.glibc}
|
||
|
-I${include.clang}
|
||
|
-I${include.urcu}
|
||
|
-I${include.zstd}
|
||
|
'';
|
||
|
|
||
|
postPatch = ''
|
||
|
cp ${./Cargo.lock} Cargo.lock
|
||
|
'';
|
||
|
|
||
|
|
||
|
doCheck = true;
|
||
|
|
||
|
# NIX_DEBUG = 4;
|
||
|
}
|