{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; odin.url = "github:starlitcanopy/odin"; odin.inputs.nixpkgs.follows = "nixpkgs"; odin.inputs.flake-utils.follows = "flake-utils"; ols.url = "github:starlitcanopy/ols"; ols.inputs.nixpkgs.follows = "nixpkgs"; ols.inputs.flake-utils.follows = "flake-utils"; ols.inputs.odin.follows = "odin"; glsl_analyzer.url = "github:starlitcanopy/glsl_analyzer"; glsl_analyzer.flake = false; }; outputs = inputs: inputs.flake-utils.lib.eachSystem (with inputs.flake-utils.lib.system; [ x86_64-linux ]) ( system: let pkgs = import inputs.nixpkgs { inherit system; overlays = [ inputs.odin.overlays.default inputs.ols.overlays.default ]; }; glsl_analyzer = pkgs.glsl_analyzer.overrideAttrs (_: { src = inputs.glsl_analyzer; nativeBuildInputs = [ pkgs.zig_0_14.hook ]; }); inherit (pkgs) lib; in { # {{{ Shell devShell = pkgs.mkShell rec { nativeBuildInputs = [ pkgs.pkg-config pkgs.odin # Compiler pkgs.mold # Linker pkgs.ols # Language server pkgs.just # Script runner pkgs.samply # Profiler pkgs.gdb # Debugger pkgs.seer # Debugger GUI pkgs.valgrind # Detect memory leaks pkgs.renderdoc # Graphics debugger glsl_analyzer # GLSL language server ]; buildInputs = [ pkgs.sdl3 pkgs.xorg.libX11 pkgs.xorg.libXScrnSaver pkgs.xorg.libXcursor pkgs.xorg.libXext pkgs.xorg.libXfixes pkgs.xorg.libXi pkgs.xorg.libXrandr ]; LD_LIBRARY_PATH = with pkgs; lib.makeLibraryPath buildInputs; }; # }}} } ); }