This repository has been archived by the owner on Sep 8, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathflake.nix
83 lines (74 loc) · 2.01 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
80
81
82
83
# confirmed to work on nixos with wayland (sway)
# use with `nix develop`
# then run `cargo run --example music -F winit/wayland`
{
inputs = {
fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "nixpkgs/nixos-unstable";
};
outputs = { nixpkgs, fenix, ... }:
let
forAllSystems = function:
# insert more systems here
nixpkgs.lib.genAttrs [ "x86_64-linux" ] (system:
function (import nixpkgs {
inherit system;
overlays = [ fenix.overlays.default ];
}));
in
{
devShells = forAllSystems (pkgs: {
default = (pkgs.mkShell.override { stdenv = pkgs.useMoldLinker pkgs.clangStdenv; }) {
packages = with pkgs; [
# rust stuff
(pkgs.fenix.complete.withComponents [
"cargo"
"clippy"
"rust-src"
"rustc"
"rustfmt"
])
clang
mold
# rust-analyzer-nightly # optional
# necessary to build
pkg-config # locate C dependencies
alsaLib # sound
libxkbcommon # keyboard
vulkan-tools
vulkan-headers
vulkan-loader
vulkan-validation-layers
# X
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
# wayland
wayland
# extra tooling
tracy # profiler, call with ~Tracy~
];
# stuff we need to run
LD_LIBRARY_PATH = with pkgs;
lib.makeLibraryPath [
libxkbcommon # keyboard
libGL
alsaLib # sound
vulkan-headers
vulkan-loader
# wayland
wayland
# xstuff
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
];
};
});
};
}