# Copyright 2026 Nadeŭka <me+oss@nadevko.cc>
# Distributed under the terms of the GNU General Public License v2
EAPI=8

inherit fcaps meson optfeature

DESCRIPTION='Shadowplay-like fastest screen recorder for Linux'
HOMEPAGE=https://git.dec05eba.com/gpu-screen-recorder/about
SRC_URI="https://dec05eba.com/snapshot/${PN}.git.${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}"
LICENSE=GPL-3

SLOT=0
KEYWORDS=amd64
IUSE='examples +filecaps nvidia screencast systemd'

SHARED_DEPEND='
	dev-libs/wayland
	media-libs/libpulse
	media-libs/libva:0=
	media-video/ffmpeg:0=[vaapi,vulkan]
	sys-libs/libcap
	x11-libs/libdrm:0=
	x11-libs/libX11
	x11-libs/libXcomposite
	x11-libs/libXdamage
	x11-libs/libXfixes
	x11-libs/libXrandr

	examples? ( media-libs/libglvnd )
	screencast? (
		sys-apps/dbus
		media-video/pipewire:0=
	)
'
BDEPEND='
	dev-util/wayland-scanner
	virtual/pkgconfig
'
DEPEND="
	${SHARED_DEPEND}
	dev-util/vulkan-headers
"
RDEPEND="
	${SHARED_DEPEND}
	media-libs/libglvnd
	media-libs/libjpeg-turbo:0=
	media-libs/vulkan-loader

	systemd? ( sys-apps/systemd )
"

FILECAPS=(
	cap_sys_admin+ep usr/bin/gsr-kms-server
)

src_configure() {
	local emesonargs=(
		-Dffmpeg_static=false
		-Dcapabilities=false
		$(meson_use screencast portal)
		$(meson_use screencast app_audio)
		$(meson_use examples plugin_examples)
		$(meson_use nvidia nvidia_suspend_fix)
		$(meson_use systemd systemd)
	)
	meson_src_configure
}

pkg_postinst() {
	use filecaps && fcaps_pkg_postinst

	optfeature_header 'Hardware accelerated encoding'
	optfeature 'NVIDIA (NVENC/CUDA/NVFBC)' x11-drivers/nvidia-drivers
	optfeature 'AMD (VAAPI)' media-libs/mesa[vaapi] media-libs/libva-mesa-driver
	optfeature 'Intel (VAAPI)' media-libs/intel-media-driver media-libs/libva-intel-driver
}