# The group tag is just to easily find this APKBUILD by some scripts for automation
# group=qt6
maintainer="Bart Ribbers <bribbers@disroot.org>"
pkgname=qt6-qtmultimedia
pkgver=6.8.3
pkgrel=0
pkgdesc="Classes for audio, video, radio and camera functionality"
url="https://qt.io/"
# armhf blocked by failing to find Qt6::OpenGLPrivate
arch="all !armhf"
license="LGPL-2.1-only AND LGPL-3.0-only AND GPL-3.0-only AND Qt-GPL-exception-1.0"
depends_dev="
	$pkgname-ffmpeg=$pkgver-r$pkgrel
	$pkgname-gstreamer=$pkgver-r$pkgrel
	alsa-lib-dev
	ffmpeg-dev
	gst-plugins-bad-dev
	gst-plugins-base-dev
	gstreamer-dev
	libva-glx-dev
	pulseaudio-dev
	qt6-qtbase-dev
	qt6-qtbase-private-dev
	qt6-qtshadertools-dev
	qt6-qtsvg-dev
	"
makedepends="$depends_dev
	cmake
	perl
	samurai
	"
case "$CARCH" in
	armhf) ;;
	*)
		depends_dev="$depends_dev qt6-qtdeclarative-dev"
		makedepends="$makedepends
			qt6-qtdeclarative-dev
			qt6-qtdeclarative-private-dev
			"
		;;
esac
subpackages="
	$pkgname-dbg
	$pkgname-dev
	$pkgname-ffmpeg
	$pkgname-gstreamer
	"

case $pkgver in
	*_alpha*|*_beta*|*_rc*) _rel=development_releases;;
	*) _rel=official_releases;;
esac

source="https://download.qt.io/$_rel/qt/${pkgver%.*}/${pkgver/_/-}/submodules/qtmultimedia-everywhere-src-${pkgver/_/-}.tar.xz
	select.patch
	"
options="!check" # Tests don't run
builddir="$srcdir/qtmultimedia-everywhere-src-${pkgver/_/-}"

build() {
	# alsa disabled due to build failure for now
	# src/multimedia/platform/alsa/qalsaaudiosink.cpp:270:5: error: 'timeStamp' was not declared in this scope
	export CFLAGS="$CFLAGS -g1 -flto=auto"
	export CXXFLAGS="$CXXFLAGS -g1 -flto=auto"
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DINSTALL_BINDIR=lib/qt6/bin \
		-DINSTALL_DOCDIR=share/doc/qt6 \
		-DINSTALL_ARCHDATADIR=lib/qt6 \
		-DINSTALL_DATADIR=share/qt6 \
		-DINSTALL_INCLUDEDIR=include/qt6 \
		-DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \
		-DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \
		-DQT_FEATURE_alsa=OFF \
		-DQT_FEATURE_pulseaudio=ON
	cmake --build build --parallel
}

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

dev() {
	default_dev

	amove usr/lib/qt6/sbom
}

ffmpeg() {
	pkgdesc="$pkgdesc (ffmpeg plugin)"
	# autopull if main dep exists anyway
	install_if="$pkgname=$pkgver-r$pkgrel ffmpeg-libavcodec"

	amove usr/lib/qt6/plugins/multimedia/libffmpegmediaplugin.so
}

gstreamer() {
	pkgdesc="$pkgdesc (gstreamer plugin)"
	# unlike above, these deps are not that obvious.
	# -base is pulled by e.g. gtk4 anyway, but practically nothing
	# would use this unless people added good, etc. so use that
	install_if="$pkgname=$pkgver-r$pkgrel gst-plugins-good"

	amove usr/lib/qt6/plugins/multimedia/libgstreamermediaplugin.so
}

sha512sums="
2f001888b44274583dcd5bc6f467cf18efbb1a711f29d6baf354071199772ee49d835922f2fa0e9770898d42decddf04b379d8f05d1dfd923c5f9d58e3c7fcd8  qtmultimedia-everywhere-src-6.8.3.tar.xz
1777a0c30cfa9fbcdcc1cf44e95822c6521b3ba95fb7a49e01a11e8107f24c0850b18fe2ac88fb1c1f88dfc5c2ed4ef17e081ef4e5a3cfbf4fb28c715f3935c5  select.patch
"
