diff options
Diffstat (limited to 'pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix')
-rw-r--r-- | pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix b/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix index 9b216c9e4ce..0e61f4aaeca 100644 --- a/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix +++ b/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix @@ -2,13 +2,16 @@ , stdenv , fetchFromGitHub , cmake +, extra-cmake-modules , ninja , wayland +, wayland-scanner , obs-studio , libX11 , vulkan-headers , vulkan-loader , libGL +, obs-vkcapture32 }: stdenv.mkDerivation rec { @@ -22,8 +25,29 @@ stdenv.mkDerivation rec { hash = "sha256-yaN0am24p9gC+s64Rop+jQ3952UOtZund/KttnVxP48="; }; - nativeBuildInputs = [ cmake ninja ]; - buildInputs = [ libGL libX11 obs-studio vulkan-headers vulkan-loader wayland ]; + cmakeFlags = lib.optionals stdenv.isi686 [ + # We don't want to build the plugin for 32bit. The library integrates with + # the 64bit plugin but it's necessary to be loaded into 32bit games. + "-DBUILD_PLUGIN=OFF" + ]; + + nativeBuildInputs = [ cmake extra-cmake-modules ninja wayland-scanner ]; + buildInputs = [ + libGL + libX11 + vulkan-headers + vulkan-loader + wayland + ] + ++ lib.optionals (!stdenv.isi686) [ + obs-studio + ]; + + # Support 32bit Vulkan applications by linking in the 32bit Vulkan layer + postInstall = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") '' + ln -s ${obs-vkcapture32}/share/vulkan/implicit_layer.d/obs_vkcapture_32.json \ + "$out/share/vulkan/implicit_layer.d/" + ''; meta = with lib; { description = "OBS Linux Vulkan/OpenGL game capture"; |