1
Fork 0

Start working on odin rendering experiment

This commit is contained in:
prescientmoon 2025-03-28 15:30:06 +01:00
parent 49b60b6eb4
commit de69cd8691
Signed by: prescientmoon
SSH key fingerprint: SHA256:UUF9JT2s8Xfyv76b8ZuVL7XrmimH4o49p4b+iexbVH4
6 changed files with 407 additions and 0 deletions
odin/sdl-opengl-rendering

View file

@ -0,0 +1,87 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
inputs:
{
overlays.default = final: prev: {
# {{{ Odin
odin = prev.odin.overrideAttrs (_: {
version = "unstable-2025-03-28";
src = final.fetchFromGitHub {
owner = "starlitcanopy";
repo = "Odin";
rev = "a1fc243f8df8b510e6de4f5e115fbfc09371cb9d";
sha256 = "0fb8lk47nb7ln0skjn3lyfi499q3wlnzp6w3qc4wf4s5zj43d6zh";
};
});
# }}}
# {{{ OLS
ols = prev.ols.overrideAttrs (_: {
version = "unstable-2025-03-12";
src = final.fetchFromGitHub {
owner = "DanielGavin";
repo = "ols";
rev = "1e44e3d78ad8a74ef09c7f54a6f6d3f7df517f8e";
sha256 = "16f7b8ijcaj5m2bdgbbl1q1mzgpgzzazrap2g17hkgy63aqq8qmf";
};
installPhase = ''
runHook preInstall
install -Dm755 ols odinfmt -t $out/bin/
cp -r builtin $out/bin/
wrapProgram $out/bin/ols --set-default ODIN_ROOT ${final.odin}/share
runHook postInstall
'';
});
# }}}
};
}
// inputs.flake-utils.lib.eachSystem (with inputs.flake-utils.lib.system; [ x86_64-linux ]) (
system:
let
pkgs = inputs.nixpkgs.legacyPackages.${system}.extend inputs.self.overlays.default;
raylib = pkgs.raylib.override { platform = "SDL"; };
inherit (pkgs) lib;
in
{
packages = { inherit (pkgs) odin; };
# {{{ Shell
devShell = pkgs.mkShell rec {
nativeBuildInputs = [
pkgs.entr # File change detection
pkgs.odin # Compiler
pkgs.mold # Linker
pkgs.just # Script runner
pkgs.samply # Profiler
pkgs.ols # Language server
pkgs.gdb # Debugger
pkgs.seer # Debugger GUI
pkgs.valgrind # Detect memory leaks
];
buildInputs = [
pkgs.libGL
pkgs.libxkbcommon
pkgs.xorg.libXi
pkgs.xorg.libX11
pkgs.xorg.libXrandr
pkgs.xorg.libXinerama
pkgs.xorg.libXcursor
pkgs.sdl3
raylib
];
LD_LIBRARY_PATH = with pkgs; lib.makeLibraryPath buildInputs;
};
# }}}
}
);
}