{ pkgs ? import { } }: # Bevy's documented Linux dependencies. `nativeBuildInputs` gives # pkg-config on PATH (and its setup hook fills PKG_CONFIG_PATH from # `buildInputs`). `LD_LIBRARY_PATH` covers the libs Bevy `dlopen`s at # runtime (Vulkan loader, libxkbcommon, GL, wayland) which pkg-config # does not handle. # # Source: https://bevy.org/learn/quick-start/getting-started/setup/ pkgs.mkShell { # `mold` + `clang` give us the fast linker pair Bevy recommends for dev # iteration. `.cargo/config.toml` wires clang as the linker driver and # passes `-fuse-ld=mold`. nativeBuildInputs = [ pkgs.pkg-config pkgs.mold pkgs.clang ]; buildInputs = with pkgs; [ udev alsa-lib vulkan-loader libxkbcommon wayland # X11 fallback (winit picks Wayland or X11 at runtime) xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr ]; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath (with pkgs; [ udev alsa-lib vulkan-loader libxkbcommon wayland xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr ]); }