{ cmake, fetchFromGitLab, glm, jsoncpp, lib, libGL, python3, stdenv, unstableGitUpdater, vulkan-headers, vulkan-loader, xorg, openxr-loader, }: stdenv.mkDerivation { pname = "opencomposite"; version = "0-unstable-2024-11-11"; src = fetchFromGitLab { owner = "znixian"; repo = "OpenOVR"; rev = "34311dabf430d6051d7e97f6081842a5394d2a67"; fetchSubmodules = true; hash = "sha256-sjgnai7RJemIXuviXhW6+L/zioz7UePaOUh3mVteGww="; }; nativeBuildInputs = [ cmake ]; buildInputs = [ glm jsoncpp libGL python3 vulkan-headers vulkan-loader xorg.libX11 ]; cmakeFlags = [ (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-Wno-error=format-security") # See https://gitlab.com/znixian/OpenOVR/-/issues/416 (lib.cmakeBool "USE_SYSTEM_OPENXR" false) (lib.cmakeBool "USE_SYSTEM_GLM" true) ]; installPhase = '' runHook preInstall mkdir -p $out/lib/opencomposite cp -r bin/ $out/lib/opencomposite runHook postInstall ''; passthru.updateScript = unstableGitUpdater { hardcodeZeroVersion = true; branch = "openxr"; }; meta = { description = "Reimplementation of OpenVR, translating calls to OpenXR"; homepage = "https://gitlab.com/znixian/OpenOVR"; license = with lib.licenses; [ gpl3Only ]; maintainers = with lib.maintainers; [ Scrumplex ]; # This can realistically only work on systems that support OpenXR Loader inherit (openxr-loader.meta) platforms; }; }