about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorPavol Rusnak <pavol@rusnak.io>2021-01-09 17:58:08 +0100
committerGitHub <noreply@github.com>2021-01-09 17:58:08 +0100
commit5468a0563f0d0529a9728935896771c251d9d445 (patch)
tree02f6a125251754c6db6f84624df2a8ef4cbd7b6c /pkgs/applications
parent288fb1f2ba2d7385c8574fe3ff5523612c5f8656 (diff)
parent42743be017ebf846435789f24877304de396d954 (diff)
Merge pull request #108820 from prusnak/xr-update
monado: Add serviceSupport option
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/graphics/monado/default.nix37
-rw-r--r--pkgs/applications/graphics/xrgears/default.nix48
2 files changed, 81 insertions, 4 deletions
diff --git a/pkgs/applications/graphics/monado/default.nix b/pkgs/applications/graphics/monado/default.nix
index 61343b3b1b466..7502ab69c3206 100644
--- a/pkgs/applications/graphics/monado/default.nix
+++ b/pkgs/applications/graphics/monado/default.nix
@@ -1,23 +1,29 @@
 { stdenv
 , fetchFromGitLab
 , fetchpatch
+, writeText
 , cmake
+, doxygen
+, glslang
 , pkg-config
 , python3
 , SDL2
 , dbus
 , eigen
 , ffmpeg
-, glslang
+, gst-plugins-base
+, gstreamer
 , hidapi
 , libGL
 , libXau
 , libXdmcp
 , libXrandr
 , libffi
+, libjpeg
 # , librealsense
 , libsurvive
 , libusb1
+, libuv
 , libuvc
 , libv4l
 , libxcb
@@ -29,6 +35,11 @@
 , 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 {
@@ -51,23 +62,36 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ cmake pkg-config python3 ];
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    glslang
+    pkg-config
+    python3
+  ];
+
+  cmakeFlags = [
+    "-DXRT_FEATURE_SERVICE=${if serviceSupport then "ON" else "OFF"}"
+  ];
 
   buildInputs = [
     SDL2
     dbus
     eigen
     ffmpeg
-    glslang
+    gst-plugins-base
+    gstreamer
     hidapi
     libGL
     libXau
     libXdmcp
     libXrandr
+    libjpeg
     libffi
     # librealsense.dev - see below
     libsurvive
     libusb1
+    libuv
     libuvc
     libv4l
     libxcb
@@ -91,11 +115,16 @@ stdenv.mkDerivation rec {
   # 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 stdenv.lib; {
     description = "Open source XR runtime";
     homepage = "https://monado.freedesktop.org/";
     license = licenses.boost;
-    maintainers = with maintainers; [ prusnak ];
+    maintainers = with maintainers; [ expipiplus1 prusnak ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/xrgears/default.nix b/pkgs/applications/graphics/xrgears/default.nix
new file mode 100644
index 0000000000000..33aa3ae3575e9
--- /dev/null
+++ b/pkgs/applications/graphics/xrgears/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitLab
+, glm
+, glslang
+, meson
+, ninja
+, openxr-loader
+, pkg-config
+, vulkan-headers
+, vulkan-loader
+, xxd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xrgears";
+  version = "unstable-2020-04-15";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "monado";
+    repo = "demos/xrgears";
+    rev = "d0bee35fbf8f181e8313f1ead13d88c4fb85c154";
+    sha256 = "1k0k8dkclyiav99kf0933kyd2ymz3hs1p0ap2wbciq9s62jgz29i";
+  };
+
+  nativeBuildInputs = [
+    glslang
+    meson
+    ninja
+    pkg-config
+    xxd
+  ];
+
+  buildInputs = [
+    glm
+    openxr-loader
+    vulkan-headers
+    vulkan-loader
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://gitlab.freedesktop.org/monado/demos/xrgears";
+    description = "An OpenXR example using Vulkan for rendering";
+    platforms = platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}