uhubctl: fix darwin build (#361491)
[NixPkgs.git] / pkgs / applications / video / gpu-screen-recorder / default.nix
blob93603de2d829fd2b9d8b98208bf797b96f839aa1
2   stdenv,
3   lib,
4   fetchurl,
5   makeWrapper,
6   meson,
7   ninja,
8   addDriverRunpath,
9   pkg-config,
10   libXcomposite,
11   libpulseaudio,
12   dbus,
13   ffmpeg,
14   wayland,
15   vulkan-headers,
16   pipewire,
17   libdrm,
18   libva,
19   libglvnd,
20   libXdamage,
21   libXi,
22   libXrandr,
23   libXfixes,
24   wrapperDir ? "/run/wrappers/bin",
27 stdenv.mkDerivation (finalAttrs: {
28   pname = "gpu-screen-recorder";
29   version = "4.2.3";
31   src = fetchurl {
32     url = "https://dec05eba.com/snapshot/gpu-screen-recorder.git.${finalAttrs.version}.tar.gz";
33     hash = "sha256-M2bk1WwLlbwspEoPIRMix17ihi72UuRWwiKBdPfim2M=";
34   };
36   sourceRoot = ".";
38   nativeBuildInputs = [
39     pkg-config
40     makeWrapper
41     meson
42     ninja
43   ];
45   buildInputs = [
46     libXcomposite
47     libpulseaudio
48     dbus
49     ffmpeg
50     pipewire
51     wayland
52     vulkan-headers
53     libdrm
54     libva
55     libXdamage
56     libXi
57     libXrandr
58     libXfixes
59   ];
61   mesonFlags = [
62     # Install the upstream systemd unit
63     (lib.mesonBool "systemd" true)
64     # Enable Wayland support
65     (lib.mesonBool "portal" true)
66     # Handle by the module
67     (lib.mesonBool "capabilities" false)
68     (lib.mesonBool "nvidia_suspend_fix" false)
69   ];
71   postInstall = ''
72     mkdir $out/bin/.wrapped
73     mv $out/bin/gpu-screen-recorder $out/bin/.wrapped/
74     makeWrapper "$out/bin/.wrapped/gpu-screen-recorder" "$out/bin/gpu-screen-recorder" \
75       --prefix LD_LIBRARY_PATH : "${
76         lib.makeLibraryPath [
77           libglvnd
78           addDriverRunpath.driverLink
79         ]
80       }" \
81       --prefix PATH : "${wrapperDir}" \
82       --suffix PATH : "$out/bin"
83   '';
85   meta = {
86     description = "Screen recorder that has minimal impact on system performance by recording a window using the GPU only";
87     homepage = "https://git.dec05eba.com/gpu-screen-recorder/about/";
88     license = lib.licenses.gpl3Only;
89     mainProgram = "gpu-screen-recorder";
90     maintainers = [ lib.maintainers.babbaj ];
91     platforms = [ "x86_64-linux" ];
92   };