{ 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.nightly.latest.default.override { extensions = ["rust-src" "rust-docs" "rustc-codegen-cranelift" "rust-analyzer" "rustfmt"]; targets = ["x86_64-unknown-linux-gnu" "wasm32-unknown-unknown"]; }) 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 # spacetimedb openssl binaryen ]; RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; LD_LIBRARY_PATH = lib.makeLibraryPath [ vulkan-loader xorg.libX11 xorg.libXi xorg.libXcursor libxkbcommon ]; RUST_LOG = "jong=trace"; }; } ); }