{ stdenv , fetchFromGitLab , lib , cmake , meson , ninja , bash-completion , libGL , libglvnd , makeWrapper , pkg-config , python3 , x11Support ? true, libxcb, libX11 , waylandSupport ? true, wayland, wayland-protocols, wayland-scanner , useGbm ? true, mesa, udev }: stdenv.mkDerivation rec { pname = "waffle"; version = "1.8.1"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "mesa"; repo = "waffle"; rev = "v${version}"; sha256 = "sha256-Y7GRYLqSO572qA1eZ3jS8QlZ1X9xKpDtScaySTuPK/U="; }; buildInputs = [ bash-completion libGL ] ++ lib.optionals (with stdenv.hostPlatform; isUnix && !isDarwin) [ libglvnd ] ++ lib.optionals x11Support [ libX11 libxcb ] ++ lib.optionals waylandSupport [ wayland wayland-protocols ] ++ lib.optionals useGbm [ udev mesa ]; depsBuildBuild = [ pkg-config ]; dontUseCmakeConfigure = true; nativeBuildInputs = [ cmake makeWrapper meson ninja pkg-config python3 ] ++ lib.optionals waylandSupport [ wayland-scanner ]; PKG_CONFIG_BASH_COMPLETION_COMPLETIONSDIR= "${placeholder "out"}/share/bash-completion/completions"; postInstall = '' wrapProgram $out/bin/wflinfo \ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libglvnd ]} ''; meta = with lib; { description = "Cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime"; mainProgram = "wflinfo"; homepage = "https://www.waffle-gl.org/"; license = licenses.bsd2; inherit (mesa.meta) platforms; maintainers = with maintainers; [ Flakebi ]; }; }