This repository was archived by the owner on Dec 21, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathflake.nix
73 lines (66 loc) · 2.32 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
{
description = "Cosmwasm VM";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
crane = {
url = "github:ipetkov/crane";
inputs.nixpkgs.follows = "nixpkgs";
inputs.rust-overlay.follows = "rust-overlay";
};
};
outputs = { self, nixpkgs, crane, flake-utils, rust-overlay }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ rust-overlay.overlays.default ];
};
in let
# Nightly rust used for wasm runtime compilation
rust-nightly =
pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
# Crane lib instantiated with current nixpkgs
crane-lib = crane.mkLib pkgs;
# Crane pinned to nightly Rust
crane-nightly = crane-lib.overrideToolchain rust-nightly;
src = pkgs.lib.cleanSourceWith {
filter = pkgs.lib.cleanSourceFilter;
src = pkgs.lib.cleanSourceWith {
filter = pkgs.nix-gitignore.gitignoreFilterPure (name: type: true)
[ ./.gitignore ] ./.;
src = ./.;
};
};
# Default args to crane
common-args = {
inherit src;
buildInputs = [ pkgs.pkg-config pkgs.openssl ]
++ (pkgs.lib.optionals pkgs.stdenv.isDarwin
(with pkgs.darwin.apple_sdk.frameworks; [ Security ]));
};
# Common dependencies used for caching
common-deps = crane-nightly.buildDepsOnly common-args;
common-cached-args = common-args // { cargoArtifacts = common-deps; };
in rec {
packages = rec {
cosmwasm-vm = crane-nightly.buildPackage common-cached-args;
default = cosmwasm-vm;
};
checks = {
package = packages.default;
clippy = crane-nightly.cargoClippy (common-cached-args // {
cargoClippyExtraArgs = "-- --deny warnings";
});
fmt = crane-nightly.cargoFmt common-args;
};
devShell = pkgs.mkShell {
buildInputs = [ rust-nightly ]
++ (with pkgs; [ openssl openssl.dev pkgconfig taplo nixfmt bacon ]);
};
});
}