{ description = "unnamed game"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, flake-utils, fenix, ... }: let lib = nixpkgs.lib; supportedSystems = let inherit (flake-utils.lib) system; in [ system.aarch64-linux system.x86_64-linux ]; in flake-utils.lib.eachSystem supportedSystems (system: let pkgs = import nixpkgs {inherit system;}; libs = with pkgs; [ libGL alsa-lib pulseaudio wayland wayland-scanner xorg.libXrandr xorg.libXinerama xorg.libXcursor xorg.libXi xorg.libX11 libxkbcommon SDL2 ]; fenixLib = fenix.packages.${system}; rustToolchain = with fenixLib; combine [ stable.toolchain targets.wasm32-unknown-emscripten.stable.toolchain ]; in { devShell = pkgs.mkShell { packages = with pkgs; [ # rust rustToolchain # web emscripten python3 # raylib cmake clang glfw pkg-config ] ++ libs; shellHook = '' # Set SDL video driver if [ "$XDG_SESSION_TYPE" == "wayland" ]; then export SDL_VIDEODRIVER=wayland else export SDL_VIDEODRIVER=x11 fi # alias make for emscripten function make() { export PATH="${pkgs.emscripten}/share/emscripten:$PATH" export C_INCLUDE_PATH="${pkgs.emscripten}/share/emscripten/cache/sysroot/include" export EM_CACHE="$HOME"/.emscripten_cache ${pkgs.gnumake}/bin/make "$@" } ''; LD_LIBRARY_PATH = lib.makeLibraryPath libs; LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; }; formatter = pkgs.alejandra; }); }