Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / mo / monado / package.nix
blob6f420f497e3339a31315bf3fe660bef3fa505a7f
1 { lib
2 , stdenv
3 , fetchFromGitLab
4 , writeText
5 , bluez
6 , cjson
7 , cmake
8 , dbus
9 , doxygen
10 , eigen
11 , elfutils
12 , glslang
13 , gst-plugins-base
14 , gstreamer
15 , hidapi
16 , libbsd
17 , libdrm
18 , libffi
19 , libGL
20 , libjpeg
21 , librealsense
22 , libsurvive
23 , libunwind
24 , libusb1
25 , libuv
26 , libuvc
27 , libv4l
28 , libXau
29 , libxcb
30 , libXdmcp
31 , libXext
32 , libXrandr
33 , nix-update-script
34 , onnxruntime
35 , opencv4
36 , openhmd
37 , openvr
38 , orc
39 , pcre2
40 , pkg-config
41 , python3
42 , SDL2
43 , shaderc
44 , tracy
45 , udev
46 , vulkan-headers
47 , vulkan-loader
48 , wayland
49 , wayland-protocols
50 , wayland-scanner
51 , zlib
52 , zstd
53 , nixosTests
54   # Set as 'false' to build monado without service support, i.e. allow VR
55   # applications linking against libopenxr_monado.so to use OpenXR standalone
56   # instead of via the monado-service program. For more information see:
57   # https://gitlab.freedesktop.org/monado/monado/-/blob/master/doc/targets.md#xrt_feature_service-disabled
58 , serviceSupport ? true
61 stdenv.mkDerivation (finalAttrs: {
62   pname = "monado";
63   version = "24.0.0";
65   src = fetchFromGitLab {
66     domain = "gitlab.freedesktop.org";
67     owner = "monado";
68     repo = "monado";
69     rev = "refs/tags/v${finalAttrs.version}";
70     hash = "sha256-lFy0VvaLD4Oyu2TZJnaIWjuaJUZjGGDJS0VsRfIUpcc=";
71   };
73   nativeBuildInputs = [
74     cmake
75     doxygen
76     glslang
77     pkg-config
78     python3
79   ];
81   cmakeFlags = [
82     (lib.cmakeBool "XRT_FEATURE_SERVICE" serviceSupport)
83     (lib.cmakeBool "XRT_OPENXR_INSTALL_ABSOLUTE_RUNTIME_PATH" true)
84     (lib.cmakeBool "XRT_HAVE_TRACY" true)
85     (lib.cmakeBool "XRT_FEATURE_TRACING" true)
86     (lib.cmakeBool "XRT_HAVE_STEAM" true)
87   ];
89   buildInputs = [
90     bluez
91     cjson
92     dbus
93     eigen
94     elfutils
95     gst-plugins-base
96     gstreamer
97     hidapi
98     libbsd
99     libdrm
100     libffi
101     libGL
102     libjpeg
103     librealsense
104     libsurvive
105     libunwind
106     libusb1
107     libuv
108     libuvc
109     libv4l
110     libXau
111     libxcb
112     libXdmcp
113     libXext
114     libXrandr
115     onnxruntime
116     opencv4
117     openhmd
118     openvr
119     orc
120     pcre2
121     SDL2
122     shaderc
123     tracy
124     udev
125     vulkan-headers
126     vulkan-loader
127     wayland
128     wayland-protocols
129     wayland-scanner
130     zlib
131     zstd
132   ];
134   # known disabled drivers/features:
135   #  - DRIVER_DEPTHAI - Needs depthai-core https://github.com/luxonis/depthai-core (See https://github.com/NixOS/nixpkgs/issues/292618)
136   #  - DRIVER_ILLIXR - needs ILLIXR headers https://github.com/ILLIXR/ILLIXR (See https://github.com/NixOS/nixpkgs/issues/292661)
137   #  - 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)
138   #  - 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)
140   # Help openxr-loader find this runtime
141   setupHook = writeText "setup-hook" ''
142     export XDG_CONFIG_DIRS=@out@/etc/xdg''${XDG_CONFIG_DIRS:+:''${XDG_CONFIG_DIRS}}
143   '';
145   passthru = {
146     updateScript = nix-update-script { };
147     tests.basic-service = nixosTests.monado;
148   };
150   meta = with lib; {
151     description = "Open source XR runtime";
152     homepage = "https://monado.freedesktop.org/";
153     license = licenses.boost;
154     maintainers = with maintainers; [ Scrumplex expipiplus1 prusnak ];
155     platforms = platforms.linux;
156     mainProgram = "monado-cli";
157   };