{ lib, stdenv, fetchFromGitHub, nim, libX11, libXrandr, libGL, nim-1_0, }: let x11-nim = fetchFromGitHub { owner = "nim-lang"; repo = "x11"; rev = "29aca5e519ebf5d833f63a6a2769e62ec7bfb83a"; sha256 = "sha256-jBNsv8meDvF2ySKewbA+rF2XS+gqydZUl1xhEevD15o="; }; opengl-nim = fetchFromGitHub { owner = "nim-lang"; repo = "opengl"; rev = "8e2e098f82dc5eefd874488c37b5830233cd18f4"; sha256 = "sha256-v3bMDobYQZqX0anBFIUfZx5q5/vxTHO6PDtKQlf5mgU="; }; in stdenv.mkDerivation rec { pname = "boomer"; version = "unstable-2024-02-08"; src = fetchFromGitHub { owner = "tsoding"; repo = "boomer"; rev = "dfd4e1f5514e2a9d7c7a6429c1c0642c2021e792"; sha256 = "sha256-o65/VVxttriA5Qqt35lLKkWIZYS7T4VBBuYdAIGUmx8="; }; buildInputs = [ nim-1_0 libX11 libXrandr libGL ]; buildPhase = '' HOME=$TMPDIR nim -p:${x11-nim}/ -p:${opengl-nim}/src c -d:release src/boomer.nim ''; installPhase = "install -Dt $out/bin src/boomer"; fixupPhase = "patchelf --set-rpath ${ lib.makeLibraryPath [ stdenv.cc.cc libX11 libXrandr libGL ] } $out/bin/boomer"; }