{ description = "a dumb minecraft in c++ and opengl."; inputs = { nixpkgs.url = "nixpkgs/nixos-25.11"; }; outputs = { self, nixpkgs }: let allSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ]; pkgsForSystem = system: nixpkgs.legacyPackages.${system}; forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f { inherit system; pkgs = pkgsForSystem system; }); in { packages = forAllSystems ({ system, pkgs }: { default = pkgs.callPackage ./. { glfw = self.packages.${system}.glfw-static; glew = self.packages.${system}.glew-static; }; glfw-static = pkgs.glfw.overrideAttrs (oldAttrs: { pname = "glfw-static"; cmakeFlags = oldAttrs.cmakeFlags ++ [ "-DBUILD_SHARED_LIBS=OFF" ]; }); glew-static = pkgs.glew.overrideAttrs { pname = "glew-static"; cmakeFlags = [ "-DBUILD_SHARED_LIBS=OFF" ]; }; }); devShells = forAllSystems ({ system, pkgs }: let inherit (pkgs) lib stdenv; in { default = pkgs.mkShell { buildInputs = (with pkgs; [ pkg-config ninja cmake meson lldb ]) ++ (with self.packages.${system}; [ glfw-static glew-static ]) ++ lib.optionals stdenv.isLinux (with pkgs; [ wayland wayland-protocols libffi ]); }; }); }; }