-
Notifications
You must be signed in to change notification settings - Fork 0
/
flake.nix
79 lines (67 loc) · 1.8 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
74
75
76
77
78
79
{
description = "devenv";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
flake-utils,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
dfxSrc =
if system == "x86_64-linux" then
{
url = "https://github.com/dfinity/sdk/releases/download/0.19.0/dfx-0.19.0-x86_64-linux.tar.gz";
sha256 = "c40387d13ab6ed87349fa21a98835f8d384f867333806ee6b9025891ed96e5c5";
}
else if system == "x86_64-darwin" || system == "aarch64-darwin" then
{
url = "https://github.com/dfinity/sdk/releases/download/0.19.0/dfx-0.19.0-x86_64-darwin.tar.gz";
sha256 = "f61179fa9884f111dbec20c293d77472dcf66d04b0567818fe546437aadd8ce6";
}
else
{ };
dfx = pkgs.stdenv.mkDerivation {
name = "dfx-${system}";
src = pkgs.fetchurl dfxSrc;
buildInputs = [
pkgs.gnutar
pkgs.gzip
];
unpackPhase = "tar -xzf $src";
installPhase = ''
mkdir -p $out/bin
cp dfx $out/bin/
'';
};
in
{
devShell = pkgs.mkShell {
buildInputs = with pkgs; [
# ic
dfx
# zig
zig
# wasm
wabt
# to compile C code
llvmPackages.bintools
llvmPackages.libclang.lib
llvmPackages.clang
# nix
nixfmt-rfc-style
];
shellHook = ''
echo "welcome to your nix shell"
'';
};
}
);
}