diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/graphics/monado/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/graphics/monado/default.nix | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/graphics/monado/default.nix b/nixpkgs/pkgs/applications/graphics/monado/default.nix new file mode 100644 index 000000000000..395ae028423a --- /dev/null +++ b/nixpkgs/pkgs/applications/graphics/monado/default.nix @@ -0,0 +1,130 @@ +{ lib, stdenv +, fetchFromGitLab +, fetchpatch +, writeText +, cmake +, doxygen +, glslang +, pkg-config +, python3 +, SDL2 +, dbus +, eigen +, ffmpeg +, gst-plugins-base +, gstreamer +, hidapi +, libGL +, libXau +, libXdmcp +, libXrandr +, libffi +, libjpeg +# , librealsense +, libsurvive +, libusb1 +, libuv +, libuvc +, libv4l +, libxcb +, opencv4 +, openhmd +, udev +, vulkan-headers +, vulkan-loader +, wayland +, wayland-protocols +, zlib +# Set as 'false' to build monado without service support, i.e. allow VR +# applications linking against libopenxr_monado.so to use OpenXR standalone +# instead of via the monado-service program. For more information see: +# https://gitlab.freedesktop.org/monado/monado/-/blob/master/doc/targets.md#xrt_feature_service-disabled +, serviceSupport ? true +}: + +stdenv.mkDerivation rec { + pname = "monado"; + version = "0.4.1"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "114aif79dqyn2qg07mkv6lzmqn15k6fdcii818rdf5g4bp7zzzgm"; + }; + + patches = [ + # fix libsurvive autodetection, drop with the next version update + (fetchpatch { + url = "https://gitlab.freedesktop.org/monado/monado/-/commit/345e9eab56e2de9e8b07cf72c2a67cf2ebd01e62.patch"; + sha256 = "17c110an6sxc8rn7dfz30rfkbayg64w68licicwc8cqabi6cgrm3"; + }) + ]; + + nativeBuildInputs = [ + cmake + doxygen + glslang + pkg-config + python3 + ]; + + cmakeFlags = [ + "-DXRT_FEATURE_SERVICE=${if serviceSupport then "ON" else "OFF"}" + ]; + + buildInputs = [ + SDL2 + dbus + eigen + ffmpeg + gst-plugins-base + gstreamer + hidapi + libGL + libXau + libXdmcp + libXrandr + libjpeg + libffi + # librealsense.dev - see below + libsurvive + libusb1 + libuv + libuvc + libv4l + libxcb + opencv4 + openhmd + udev + vulkan-headers + vulkan-loader + wayland + wayland-protocols + zlib + ]; + + # realsense is disabled, the build ends with the following error: + # + # CMake Error in src/xrt/drivers/CMakeLists.txt: + # Imported target "realsense2::realsense2" includes non-existent path + # "/nix/store/2v95aps14hj3jy4ryp86vl7yymv10mh0-librealsense-2.41.0/include" + # in its INTERFACE_INCLUDE_DIRECTORIES. + # + # for some reason cmake is trying to use ${librealsense}/include + # instead of ${librealsense.dev}/include as an include directory + + # Help openxr-loader find this runtime + setupHook = writeText "setup-hook" '' + export XDG_CONFIG_DIRS=@out@/etc/xdg''${XDG_CONFIG_DIRS:+:''${XDG_CONFIG_DIRS}} + ''; + + meta = with lib; { + description = "Open source XR runtime"; + homepage = "https://monado.freedesktop.org/"; + license = licenses.boost; + maintainers = with maintainers; [ expipiplus1 prusnak ]; + platforms = platforms.linux; + }; +} |