{ description = "bevy flake"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; rust-overlay.url = "github:oxalica/rust-overlay"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { nixpkgs, rust-overlay, flake-utils, ... }: flake-utils.lib.eachDefaultSystem ( system: let overlays = [(import rust-overlay)]; pkgs = import nixpkgs { inherit system overlays; }; in { devShells.default = with pkgs; mkShell { buildInputs = [ # Rust dependencies (rust-bin.stable.latest.default.override {extensions = ["rust-src"];}) pkg-config ] ++ lib.optionals (lib.strings.hasInfix "linux" system) [ # for Linux # Audio (Linux only) alsa-lib # Cross Platform 3D Graphics API vulkan-loader # For debugging around vulkan vulkan-tools # Other dependencies libudev-zero xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr libxkbcommon wayland ]; RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; LD_LIBRARY_PATH = lib.makeLibraryPath [ vulkan-loader xorg.libX11 xorg.libXi xorg.libXcursor libxkbcommon ]; }; } ); }