2021-01-11 07:54:33 +00:00
|
|
|
{ lib, stdenv
|
2021-01-05 17:10:48 +00:00
|
|
|
, fetchFromGitLab
|
|
|
|
, fetchpatch
|
2021-01-08 21:55:45 +00:00
|
|
|
, writeText
|
2021-01-05 17:10:48 +00:00
|
|
|
, cmake
|
2021-01-08 21:55:45 +00:00
|
|
|
, doxygen
|
|
|
|
, glslang
|
2021-01-05 17:10:48 +00:00
|
|
|
, pkg-config
|
|
|
|
, python3
|
|
|
|
, SDL2
|
|
|
|
, dbus
|
|
|
|
, eigen
|
|
|
|
, ffmpeg
|
2021-01-08 21:55:45 +00:00
|
|
|
, gst-plugins-base
|
|
|
|
, gstreamer
|
2021-01-05 17:10:48 +00:00
|
|
|
, hidapi
|
|
|
|
, libGL
|
|
|
|
, libXau
|
|
|
|
, libXdmcp
|
|
|
|
, libXrandr
|
|
|
|
, libffi
|
2021-01-08 21:55:45 +00:00
|
|
|
, libjpeg
|
2021-01-05 17:10:48 +00:00
|
|
|
# , librealsense
|
|
|
|
, libsurvive
|
|
|
|
, libusb1
|
2021-01-08 21:55:45 +00:00
|
|
|
, libuv
|
2021-01-05 17:10:48 +00:00
|
|
|
, libuvc
|
|
|
|
, libv4l
|
|
|
|
, libxcb
|
|
|
|
, opencv4
|
|
|
|
, openhmd
|
|
|
|
, udev
|
|
|
|
, vulkan-headers
|
|
|
|
, vulkan-loader
|
|
|
|
, wayland
|
|
|
|
, wayland-protocols
|
|
|
|
, zlib
|
2021-01-08 21:55:45 +00:00
|
|
|
# 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
|
2021-01-05 17:10:48 +00:00
|
|
|
}:
|
|
|
|
|
|
|
|
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";
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
2021-01-08 21:55:45 +00:00
|
|
|
nativeBuildInputs = [
|
|
|
|
cmake
|
|
|
|
doxygen
|
|
|
|
glslang
|
|
|
|
pkg-config
|
|
|
|
python3
|
|
|
|
];
|
|
|
|
|
|
|
|
cmakeFlags = [
|
|
|
|
"-DXRT_FEATURE_SERVICE=${if serviceSupport then "ON" else "OFF"}"
|
|
|
|
];
|
2021-01-05 17:10:48 +00:00
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
SDL2
|
|
|
|
dbus
|
|
|
|
eigen
|
|
|
|
ffmpeg
|
2021-01-08 21:55:45 +00:00
|
|
|
gst-plugins-base
|
|
|
|
gstreamer
|
2021-01-05 17:10:48 +00:00
|
|
|
hidapi
|
|
|
|
libGL
|
|
|
|
libXau
|
|
|
|
libXdmcp
|
|
|
|
libXrandr
|
2021-01-08 21:55:45 +00:00
|
|
|
libjpeg
|
2021-01-05 17:10:48 +00:00
|
|
|
libffi
|
|
|
|
# librealsense.dev - see below
|
|
|
|
libsurvive
|
|
|
|
libusb1
|
2021-01-08 21:55:45 +00:00
|
|
|
libuv
|
2021-01-05 17:10:48 +00:00
|
|
|
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
|
|
|
|
|
2021-01-08 21:55:45 +00:00
|
|
|
# Help openxr-loader find this runtime
|
|
|
|
setupHook = writeText "setup-hook" ''
|
|
|
|
export XDG_CONFIG_DIRS=@out@/etc/xdg''${XDG_CONFIG_DIRS:+:''${XDG_CONFIG_DIRS}}
|
|
|
|
'';
|
|
|
|
|
2021-01-11 07:54:33 +00:00
|
|
|
meta = with lib; {
|
2021-01-05 17:10:48 +00:00
|
|
|
description = "Open source XR runtime";
|
|
|
|
homepage = "https://monado.freedesktop.org/";
|
|
|
|
license = licenses.boost;
|
2021-01-08 21:55:45 +00:00
|
|
|
maintainers = with maintainers; [ expipiplus1 prusnak ];
|
2021-01-05 17:10:48 +00:00
|
|
|
platforms = platforms.linux;
|
|
|
|
};
|
|
|
|
}
|