Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / wl / wlx-overlay-s / package.nix
blob5667cecdca1241b6e1aefeb78b982ef5aaafc87c
1 { lib
2 , stdenv
3 , rustPlatform
4 , fetchFromGitHub
5 , alsa-lib
6 , dbus
7 , fontconfig
8 , libxkbcommon
9 , makeWrapper
10 , nix-update-script
11 , openvr
12 , openxr-loader
13 , pipewire
14 , pkg-config
15 , pulseaudio
16 , shaderc
17 , testers
18 , wayland
19 , wlx-overlay-s
20 , xorg
23 rustPlatform.buildRustPackage rec {
24   pname = "wlx-overlay-s";
25   version = "0.4.2";
27   src = fetchFromGitHub {
28     owner = "galister";
29     repo = "wlx-overlay-s";
30     rev = "v${version}";
31     hash = "sha256-4sW/WxoN5jAomA/aFAAH8z8CAB7zsevpBllSwaQWSmU=";
32   };
34   cargoLock = {
35     lockFile = ./Cargo.lock;
36     outputHashes = {
37       "ovr_overlay-0.0.0" = "sha256-d38LqhKOp9tHbiK4eU7OPdFvkExqaJN1tB6y2qqPm9U=";
38       "vulkano-0.34.0" = "sha256-o1KP/mscMG5j3U3xtei/2nMNEh7jLedcW1P0gL9Y1Rc=";
39       "wlx-capture-0.3.11" = "sha256-CmFnVfA3MAYXSejn9GpuaNCRu4HiX0CN0j3aN4Pxvjw=";
40     };
41   };
43   nativeBuildInputs = [
44     makeWrapper
45     pkg-config
46     rustPlatform.bindgenHook
47   ];
49   buildInputs = [
50     alsa-lib
51     dbus
52     fontconfig
53     libxkbcommon
54     openvr
55     openxr-loader
56     pipewire
57     xorg.libX11
58     xorg.libXext
59     xorg.libXrandr
60   ];
62   env.SHADERC_LIB_DIR = "${lib.getLib shaderc}/lib";
64   postPatch = ''
65     substituteAllInPlace src/res/watch.yaml \
66       --replace '"pactl"' '"${lib.getExe' pulseaudio "pactl"}"'
68     # TODO: src/res/keyboard.yaml references 'whisper_stt'
69   '';
71   postInstall = ''
72     patchelf $out/bin/wlx-overlay-s \
73       --add-needed ${lib.getLib wayland}/lib/libwayland-client.so.0 \
74       --add-needed ${lib.getLib libxkbcommon}/lib/libxkbcommon.so.0
75   '';
77   passthru = {
78     tests.testVersion = testers.testVersion { package = wlx-overlay-s; };
80     updateScript = nix-update-script { };
81   };
83   meta = {
84     description = "Wayland/X11 desktop overlay for SteamVR and OpenXR, Vulkan edition";
85     homepage = "https://github.com/galister/wlx-overlay-s";
86     license = lib.licenses.gpl3Only;
87     maintainers = with lib.maintainers; [ Scrumplex ];
88     platforms = lib.platforms.linux;
89     broken = stdenv.isAarch64;
90     mainProgram = "wlx-overlay-s";
91   };