summaryrefslogtreecommitdiff
path: root/rust-src/bch_bindgen
diff options
context:
space:
mode:
authorKayla Firestack <dev@kaylafire.me>2021-10-18 12:34:12 -0400
committerKayla Firestack <dev@kaylafire.me>2021-10-18 12:34:12 -0400
commit7e97ef59bd30154776417748b6518ec43a3db2b9 (patch)
treec954e5256112e909f2d1ce4157590397bee19a3b /rust-src/bch_bindgen
parent26d6b3464a71e79454b42a088c49d5e767a0fe45 (diff)
add mount and bch-bindgen nix builder file
update kernel diffHash
Diffstat (limited to 'rust-src/bch_bindgen')
-rw-r--r--rust-src/bch_bindgen/default.nix76
1 files changed, 76 insertions, 0 deletions
diff --git a/rust-src/bch_bindgen/default.nix b/rust-src/bch_bindgen/default.nix
new file mode 100644
index 00000000..f6053d56
--- /dev/null
+++ b/rust-src/bch_bindgen/default.nix
@@ -0,0 +1,76 @@
+{ 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;
+} \ No newline at end of file