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
let
rustVersion = "latest";
rust_overlay = import (
builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"
);
pkgs = import <nixpkgs> {
overlays = [
rust_overlay
(_: prev: {
my-rust = prev.rust-bin.stable.${rustVersion}.default.override {
extensions = [
"rust-src" # for rust-analyzer
"rust-analyzer"
];
};
})
];
};
in
pkgs.mkShell {
packages = with pkgs; [
my-rust
pkg-config
openssl
nasm
imagemagick
clang
llvmPackages.libclang
just
gifsicle
libheif
lldb
];
shellHook = ''
export LIBCLANG_PATH=${pkgs.llvmPackages.libclang.lib}/lib
export LD_LIBRARY_PATH=${pkgs.llvmPackages.libclang.lib}/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=${pkgs.llvmPackages.libclang}/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir -p tmp
export TMPDIR=$(pwd)/tmp
'';
}