# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=obs-studio
pkgver=31.0.2
pkgrel=0
pkgdesc="Free and open source software for live streaming and screen recording"
url="https://obsproject.com/"
arch="all !ppc64le !riscv64" # luajit
license="GPL-2.0-or-later"
options="!check"
makedepends="
	alsa-lib-dev
	appstream-glib
	cmake
	curl-dev
	eudev-dev
	fdk-aac-dev
	ffmpeg-dev
	ffnvcodec-headers
	fontconfig-dev
	freetype-dev
	jack-dev
	jansson-dev
	librist-dev
	libdatachannel-dev
	libsrt-dev
	libva-glx-dev
	libva-dev
	libxcb-dev
	libx11-dev
	libxcomposite-dev
	libxinerama-dev
	libxkbcommon-dev
	linux-headers
	luajit-dev
	mbedtls-static
	mesa-dev
	nlohmann-json
	openssl-dev
	pciutils-dev
	pipewire-dev
	pulseaudio-dev
	python3-dev
	py3-glad
	qt6-qtbase-dev
	qt6-qtbase-private-dev
	qt6-qtsvg-dev
	rnnoise-dev
	samurai
	sed
	sndio-dev
	speexdsp-dev
	swig
	uthash-dev
	vlc-dev
	v4l-utils-dev
	wayland-dev
	x264-dev
	"
subpackages="$pkgname-dev"
source="https://github.com/obsproject/obs-studio/archive/$pkgver/obs-studio-$pkgver.tar.gz
fix-cmake-settings.patch"

# Regression for VPL only available for x86_64
# https://github.com/obsproject/obs-studio/issues/9578
case $CARCH in
	x86_64)
		makedepends="$makedepends onevpl-dev"
		_vpl=ON
	;;
	*)
		_vpl=OFF
	;;
esac

prepare() {
	default_prepare
	# no toggle for these, but the dirs are empty by default
	# make them valid cmake subdirs that do nothing
	touch plugins/obs-browser/CMakeLists.txt
	touch plugins/obs-websocket/CMakeLists.txt
	rm -rf deps/glad/include/EGL
	rm -rf deps/glad/include/KHR
}

build() {
	export CFLAGS="$CFLAGS  -Wno-incompatible-pointer-types"
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DCMAKE_SKIP_INSTALL_RPATH=ON \
		-DOBS_VERSION_OVERRIDE=$pkgver \
		-DCALM_DEPRECATION=ON \
		-DOPENGL_opengl_LIBRARY=/usr/lib/libGL.so \
		-DENABLE_AJA=OFF \
		-DENABLE_LIBFDK=ON \
		-DENABLE_JACK=ON \
		-DENABLE_NVENC=OFF \
		-DENABLE_FFMPEG_NVENC=OFF \
		-DENABLE_WEBRTC=ON \
		-DOpenGL_GL_PREFERENCE=GLVND \
		-DCALM_DEPRECATION=ON \
		-DENABLE_VST=ON \
		-DENABLE_QSV11=$_vpl \
		-DENABLE_VLC=ON \
		-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \
		-Wno-dev
	cmake --build build
}

package() {
	DESTDIR="$pkgdir" cmake --install build
}

sha512sums="
d0f273e91b354523289eb0c295f45be80e1d0c6e383f28979375e243ace7e55da58e5c17cbfc64bdedf053a78fd39e520b8b704dfb4e1fe8dcf3814d0eb56705  obs-studio-31.0.2.tar.gz
fdb16f49be02e1ccc4c3ad7385184d6df19dffd368f4de616bf4dadf77db0af9fbca650ea893d342ac9daaedac00e7cb70e967e667c595144e79a0e9040fd218  fix-cmake-settings.patch
"
