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

Commit 842a070

Browse files
nix support
1 parent 78c99da commit 842a070

File tree

2 files changed

+149
-0
lines changed

2 files changed

+149
-0
lines changed

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

0 commit comments

Comments
 (0)