{ description = "devshell-enby"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; }; outputs = inputs @ { self, nixpkgs, }: let defaultSystems = ["aarch64-darwin" "aarch64-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"]; forAllSystems = f: nixpkgs.lib.genAttrs defaultSystems (system: f system (import nixpkgs { inherit system; overlays = builtins.attrValues self.overlays; })); in { overlays.default = final: prev: { }; devShells = forAllSystems ( system: pkgs: let lib = pkgs.lib; in rec { default = pkgs.mkShell { packages = with pkgs; [ gnumake # C Compiler & Runtime gcc glib.dev # C Development Tooling clang-tools bear # clang compile_commands.json valgrind # memory debugging+profiling # Dear ImGui freetype.dev # SDL3+OpenGL3 backend (OPTIONAL) glfw3 glm sdl3 sdl3-image sdl3-ttf ]; env = { #SDL_CONFIG = "${SDL2.dev}/bin/sdl2-config"; PATH = lib.makeBinPath [pkgs.sdl3.dev]; }; shell = "${pkgs.bash}/bin/bash"; # so I can easily read the glibc header files GLIBC = "${pkgs.glibc.dev}/include"; # GLIBCXX = "${pkgs.glib.dev}/include"; }; debug = default.override (prev: { packages = with pkgs; prev.packages ++ [ # .NET Compiler & Runtime (with dotnetCorePackages; combinePackages [ sdk_9_0 runtime_9_0 ]) # .NET Development Tooling ilspycmd # Hammer scons pkg-config ]; }); } ); }; }