Skip to content

Commit 0d71411

Browse files
tgunnoeladamesny
authored andcommitted
Update nix build to reflect recent changes on master
1 parent 508c7d4 commit 0d71411

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

flake.nix

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,84 @@
4343

4444
isLinux = pkgs.stdenv.isLinux;
4545
isDarwin = pkgs.stdenv.isDarwin;
46+
customRustPlatform = pkgs.makeRustPlatform {
47+
cargo = rustToolchain;
48+
rustc = rustToolchain;
49+
};
4650
in
4751
{
52+
packages.partner-chains = customRustPlatform.buildRustPackage rec {
53+
pname = "partner-chains";
54+
version = "1.7";
55+
src = ./.;
56+
# preBuild = ''
57+
# export SUBSTRATE_CLI_GIT_COMMIT_HASH=${dirtyShortRev or shortRev}
58+
# '';
59+
60+
useFetchCargoVendor = true;
61+
cargoHash = "sha256-evSP89WBwPl2jL43/ddZWyt+CgxRR9Xst1mGn8bKKgo=";
62+
buildType = "production";
63+
#buildAndTestSubdir = dir;
64+
doCheck = false;
65+
patches = [];
66+
67+
nativeBuildInputs = [
68+
pkgs.pkg-config
69+
pkgs.protobuf
70+
71+
pkgs.llvmPackages.lld
72+
customRustPlatform.bindgenHook
73+
];
74+
buildInputs = [
75+
pkgs.rocksdb
76+
pkgs.openssl
77+
pkgs.libclang.lib
78+
] ++ pkgs.lib.optionals pkgs.stdenv.hostPlatform.isLinux [
79+
pkgs.rust-jemalloc-sys-unprefixed
80+
] ++ pkgs.lib.optionals pkgs.stdenv.hostPlatform.isDarwin [
81+
pkgs.darwin.apple_sdk.frameworks.SystemConfiguration
82+
pkgs.darwin.apple_sdk.frameworks.Security
83+
];
84+
85+
postFixup = pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isLinux ''
86+
patchelf --set-rpath "${pkgs.rocksdb}/lib:${pkgs.stdenv.cc.cc.lib}/lib" $out/bin/partner-chains-demo-node
87+
'';
88+
89+
# Force skip support check in CC crate
90+
#CRATE_CC_NO_DEFAULTS = "1";
91+
92+
# Platform-specific features
93+
RUSTFLAGS = pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isDarwin
94+
"--cfg unwinding_backport --cfg unwinding_apple";
95+
96+
# Existing environment variables
97+
CC_ENABLE_DEBUG_OUTPUT = "1";
98+
#CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_LINKER = "${pkgs.llvmPackages.lld}/bin/lld";
99+
#RUST_SRC_PATH = "${customRustPlatform.rustLibSrc}";
100+
LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
101+
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
102+
rustToolchain
103+
pkgs.stdenv.cc.cc
104+
pkgs.libz
105+
pkgs.clang
106+
];
107+
108+
# Platform-specific flags
109+
CFLAGS =
110+
if pkgs.lib.hasSuffix "linux" system then
111+
"-DJEMALLOC_STRERROR_R_RETURNS_CHAR_WITH_GNU_SOURCE"
112+
else
113+
"";
114+
115+
PROTOC = "${pkgs.protobuf}/bin/protoc";
116+
ROCKSDB_LIB_DIR = "${pkgs.rocksdb}/lib/";
117+
OPENSSL_NO_VENDOR = 1;
118+
OPENSSL_DIR = "${pkgs.openssl.dev}";
119+
OPENSSL_INCLUDE_DIR = "${pkgs.openssl.dev}/include";
120+
OPENSSL_LIB_DIR = "${pkgs.openssl.out}/lib";
121+
BINDGEN_EXTRA_CLANG_ARGS = "-I${pkgs.stdenv.cc.cc}/include -std=c++17";
122+
123+
};
48124
devShells.default = pkgs.mkShell {
49125
packages =
50126
with pkgs;

0 commit comments

Comments
 (0)