Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit 3845d99

Browse files
nix support
1 parent 78c99da commit 3845d99

File tree

4 files changed

+152
-0
lines changed

4 files changed

+152
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ rls*.log
2727
scripts/ci/node-template-release/Cargo.lock
2828
bin/node-template/Cargo.lock
2929
substrate.code-workspace
30+
result

flake.lock

Lines changed: 67 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# nix run github:paritytech/substrate#subkey
2+
{
3+
inputs = {
4+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11";
5+
rust-overlay = {
6+
url = "github:oxalica/rust-overlay";
7+
inputs = {
8+
nixpkgs.follows = "nixpkgs";
9+
flake-utils.follows = "flake-utils";
10+
};
11+
};
12+
flake-utils.url = "github:numtide/flake-utils";
13+
};
14+
outputs = { self, nixpkgs, flake-utils, rust-overlay }:
15+
let
16+
per_system = flake-utils.lib.eachDefaultSystem (system:
17+
let
18+
overlays = [ (import rust-overlay) ];
19+
pkgs = import nixpkgs {
20+
inherit system overlays;
21+
};
22+
rust-native-build-inputs = with pkgs; [ clang pkg-config ];
23+
rust-src = pkgs.lib.cleanSourceWith {
24+
src = pkgs.lib.cleanSource ./.;
25+
filter = pkgs.nix-gitignore.gitignoreFilterPure
26+
(name: type:
27+
(
28+
(type == "regular" && pkgs.lib.strings.hasSuffix ".nix" name)
29+
== false
30+
&&
31+
(type == "directory" && ".github" == name) == false
32+
)
33+
)
34+
[ ./.gitignore ] ./.;
35+
};
36+
rust-env = with pkgs; {
37+
LD_LIBRARY_PATH = pkgs.lib.strings.makeLibraryPath [
38+
pkgs.stdenv.cc.cc.lib
39+
pkgs.llvmPackages.libclang.lib
40+
];
41+
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
42+
PROTOC = "${pkgs.protobuf}/bin/protoc";
43+
ROCKSDB_LIB_DIR = "${pkgs.rocksdb}/lib";
44+
};
45+
46+
darwin = pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs.darwin.apple_sdk; [
47+
frameworks.Security
48+
]);
49+
50+
rust-libs = {
51+
buildInputs = with pkgs; [ openssl ] ++ darwin;
52+
nativeBuildInputs = rust-native-build-inputs;
53+
doCheck = false;
54+
};
55+
rust-deps = pkgs.makeRustPlatform {
56+
inherit pkgs;
57+
cargo = pkgs.rust-bin.beta.latest.default;
58+
rustc = pkgs.rust-bin.beta.latest.default;
59+
};
60+
subkey = with pkgs; rust-deps.buildRustPackage (rust-libs // rust-env // rec {
61+
name = "subkey";
62+
src = rust-src;
63+
cargoLock = {
64+
lockFile = ./Cargo.lock;
65+
};
66+
doCheck = false;
67+
cargoBuildFlags = "--package subkey";
68+
});
69+
70+
in
71+
{
72+
packages = {
73+
inherit subkey;
74+
};
75+
}
76+
);
77+
in
78+
per_system // {
79+
overlays = final: prev: {
80+
subkey = per_system.packages.${prev.system}.subkey;
81+
};
82+
};
83+
}

result

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/nix/store/l56gz6hgg899prfpijslv0b1arsznw7l-subkey

0 commit comments

Comments
 (0)