159 lines
3.3 KiB
Nix
159 lines
3.3 KiB
Nix
|
{ lib
|
||
|
, stdenv
|
||
|
, fetchFromGitLab
|
||
|
, writeText
|
||
|
, bluez
|
||
|
, cjson
|
||
|
, cmake
|
||
|
, dbus
|
||
|
, doxygen
|
||
|
, eigen
|
||
|
, elfutils
|
||
|
, glslang
|
||
|
, gst-plugins-base
|
||
|
, gstreamer
|
||
|
, hidapi
|
||
|
, libbsd
|
||
|
, libdrm
|
||
|
, libffi
|
||
|
, libGL
|
||
|
, libjpeg
|
||
|
, librealsense
|
||
|
, libsurvive
|
||
|
, libunwind
|
||
|
, libusb1
|
||
|
, libuv
|
||
|
, libuvc
|
||
|
, libv4l
|
||
|
, libXau
|
||
|
, libxcb
|
||
|
, libXdmcp
|
||
|
, libXext
|
||
|
, libXrandr
|
||
|
, nix-update-script
|
||
|
, onnxruntime
|
||
|
, opencv4
|
||
|
, openhmd
|
||
|
, openvr
|
||
|
, orc
|
||
|
, pcre2
|
||
|
, pkg-config
|
||
|
, python3
|
||
|
, SDL2
|
||
|
, shaderc
|
||
|
, tracy
|
||
|
, udev
|
||
|
, vulkan-headers
|
||
|
, vulkan-loader
|
||
|
, wayland
|
||
|
, wayland-protocols
|
||
|
, wayland-scanner
|
||
|
, zlib
|
||
|
, zstd
|
||
|
, nixosTests
|
||
|
# 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 (finalAttrs: {
|
||
|
pname = "monado";
|
||
|
version = "24.0.0";
|
||
|
|
||
|
src = fetchFromGitLab {
|
||
|
domain = "gitlab.freedesktop.org";
|
||
|
owner = "monado";
|
||
|
repo = "monado";
|
||
|
rev = "refs/tags/v${finalAttrs.version}";
|
||
|
hash = "sha256-lFy0VvaLD4Oyu2TZJnaIWjuaJUZjGGDJS0VsRfIUpcc=";
|
||
|
};
|
||
|
|
||
|
nativeBuildInputs = [
|
||
|
cmake
|
||
|
doxygen
|
||
|
glslang
|
||
|
pkg-config
|
||
|
python3
|
||
|
];
|
||
|
|
||
|
cmakeFlags = [
|
||
|
(lib.cmakeBool "XRT_FEATURE_SERVICE" serviceSupport)
|
||
|
(lib.cmakeBool "XRT_OPENXR_INSTALL_ABSOLUTE_RUNTIME_PATH" true)
|
||
|
(lib.cmakeBool "XRT_HAVE_TRACY" true)
|
||
|
(lib.cmakeBool "XRT_FEATURE_TRACING" true)
|
||
|
(lib.cmakeBool "XRT_HAVE_STEAM" true)
|
||
|
];
|
||
|
|
||
|
buildInputs = [
|
||
|
bluez
|
||
|
cjson
|
||
|
dbus
|
||
|
eigen
|
||
|
elfutils
|
||
|
gst-plugins-base
|
||
|
gstreamer
|
||
|
hidapi
|
||
|
libbsd
|
||
|
libdrm
|
||
|
libffi
|
||
|
libGL
|
||
|
libjpeg
|
||
|
librealsense
|
||
|
libsurvive
|
||
|
libunwind
|
||
|
libusb1
|
||
|
libuv
|
||
|
libuvc
|
||
|
libv4l
|
||
|
libXau
|
||
|
libxcb
|
||
|
libXdmcp
|
||
|
libXext
|
||
|
libXrandr
|
||
|
onnxruntime
|
||
|
opencv4
|
||
|
openhmd
|
||
|
openvr
|
||
|
orc
|
||
|
pcre2
|
||
|
SDL2
|
||
|
shaderc
|
||
|
tracy
|
||
|
udev
|
||
|
vulkan-headers
|
||
|
vulkan-loader
|
||
|
wayland
|
||
|
wayland-protocols
|
||
|
wayland-scanner
|
||
|
zlib
|
||
|
zstd
|
||
|
];
|
||
|
|
||
|
# known disabled drivers/features:
|
||
|
# - DRIVER_DEPTHAI - Needs depthai-core https://github.com/luxonis/depthai-core (See https://github.com/NixOS/nixpkgs/issues/292618)
|
||
|
# - DRIVER_ILLIXR - needs ILLIXR headers https://github.com/ILLIXR/ILLIXR (See https://github.com/NixOS/nixpkgs/issues/292661)
|
||
|
# - DRIVER_ULV2 - Needs proprietary Leapmotion SDK https://api.leapmotion.com/documentation/v2/unity/devguide/Leap_SDK_Overview.html (See https://github.com/NixOS/nixpkgs/issues/292624)
|
||
|
# - DRIVER_ULV5 - Needs proprietary Leapmotion SDK https://api.leapmotion.com/documentation/v2/unity/devguide/Leap_SDK_Overview.html (See https://github.com/NixOS/nixpkgs/issues/292624)
|
||
|
|
||
|
# Help openxr-loader find this runtime
|
||
|
setupHook = writeText "setup-hook" ''
|
||
|
export XDG_CONFIG_DIRS=@out@/etc/xdg''${XDG_CONFIG_DIRS:+:''${XDG_CONFIG_DIRS}}
|
||
|
'';
|
||
|
|
||
|
passthru = {
|
||
|
updateScript = nix-update-script { };
|
||
|
tests.basic-service = nixosTests.monado;
|
||
|
};
|
||
|
|
||
|
meta = with lib; {
|
||
|
description = "Open source XR runtime";
|
||
|
homepage = "https://monado.freedesktop.org/";
|
||
|
license = licenses.boost;
|
||
|
maintainers = with maintainers; [ Scrumplex expipiplus1 prusnak ];
|
||
|
platforms = platforms.linux;
|
||
|
mainProgram = "monado-cli";
|
||
|
};
|
||
|
})
|