SUMMARY="GStreamer Base Plug-ins"
DESCRIPTION="GStreamer Base Plug-ins is a well-groomed and well-maintained collection of \
GStreamer plug-ins and elements, spanning the range of possible types of elements one \
would want to write for GStreamer. It also contains helper libraries and base classes \
useful for writing elements. A wide range of video and audio decoders, encoders, and \
filters are included."
HOMEPAGE="https://gstreamer.freedesktop.org/"
COPYRIGHT="Erik Walthinsen"
LICENSE="GNU LGPL v2"
REVISION="1"
SOURCE_URI="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-$portVersion.tar.xz"
CHECKSUM_SHA256="960b7af4585700db0fdd5b843554e11e2564fed9e061f591fae88a7be6446fa3"
SOURCE_DIR="gst-plugins-base-$portVersion"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

libVersion="0.1805.0"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"

PROVIDES="
	gst_plugins_base$secondaryArchSuffix = $portVersion
	cmd:gst_device_monitor_1.0$secondaryArchSuffix = $portVersion
	cmd:gst_discoverer_1.0$secondaryArchSuffix = $portVersion
	cmd:gst_play_1.0$secondaryArchSuffix = $portVersion
	lib:libgstallocators_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgstapp_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgstaudio_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgstfft_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgstpbutils_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgstriff_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgstrtp_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgstrtsp_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgstsdp_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgsttag_1.0$secondaryArchSuffix = $libVersionCompat
	lib:libgstvideo_1.0$secondaryArchSuffix = $libVersionCompat
	"
REQUIRES="
	haiku$secondaryArchSuffix
	lib:libfreetype$secondaryArchSuffix
	lib:libglib_2.0$secondaryArchSuffix
	lib:libgstreamer_1.0$secondaryArchSuffix
	lib:libiconv$secondaryArchSuffix
	lib:libintl$secondaryArchSuffix
	lib:libogg$secondaryArchSuffix
	lib:libopus$secondaryArchSuffix
	lib:liborc_0.4$secondaryArchSuffix
	lib:libtheoradec$secondaryArchSuffix
	lib:libtheoraenc$secondaryArchSuffix
	lib:libvorbis$secondaryArchSuffix
	lib:libvorbisidec$secondaryArchSuffix
	lib:libxml2$secondaryArchSuffix
	lib:libz$secondaryArchSuffix
	"
SUPPLEMENTS="
	gstreamer$secondaryArchSuffix
	"

PROVIDES_devel="
	gst_plugins_base${secondaryArchSuffix}_devel = $portVersion
	devel:libgstallocators_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgstapp_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgstaudio_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgstfft_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgstpbutils_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgstriff_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgstrtp_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgstrtsp_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgstsdp_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgsttag_1.0$secondaryArchSuffix = $libVersionCompat
	devel:libgstvideo_1.0$secondaryArchSuffix = $libVersionCompat
	"
REQUIRES_devel="
	gst_plugins_base$secondaryArchSuffix == $portVersion base
	haiku$secondaryArchSuffix
	"

BUILD_REQUIRES="
	haiku${secondaryArchSuffix}_devel
	devel:libfreetype$secondaryArchSuffix
	devel:libglib_2.0$secondaryArchSuffix
	devel:libgstreamer_1.0$secondaryArchSuffix >= $libVersion
	devel:libogg$secondaryArchSuffix
	devel:libopus$secondaryArchSuffix
	devel:liborc_0.4$secondaryArchSuffix
	devel:libtheora$secondaryArchSuffix
	devel:libvorbis$secondaryArchSuffix
	devel:libvorbisidec$secondaryArchSuffix
	devel:libxml2$secondaryArchSuffix
	devel:libz$secondaryArchSuffix
	"
BUILD_PREREQUIRES="
	cmd:bison
	cmd:flex
	cmd:gcc$secondaryArchSuffix
	cmd:grep
	cmd:ld$secondaryArchSuffix
	cmd:make
	cmd:meson
	cmd:ninja
	cmd:orcc$secondaryArchSuffix
	cmd:pkg_config$secondaryArchSuffix
	cmd:python
	cmd:python3
	cmd:which
	"

BUILD()
{
	export CFLAGS="-lnetwork"

	meson build \
		--buildtype=release \
		--prefix=$prefix \
		--bindir=$binDir \
		--libdir=$libDir \
		--libexecdir=$libDir \
		--datadir=$dataDir \
		--mandir=$manDir \
		--includedir=$includeDir \
		-D doc=disabled \
		-D examples=disabled \
		-D test=disabled \
		-D nls=disabled \
		-D orc=enabled

	ninja -C build $jobArgs
}

INSTALL()
{
	ninja -C build install

	prepareInstalledDevelLibs libgstallocators-1.0 libgstapp-1.0 \
		libgstaudio-1.0 libgstfft-1.0 libgstpbutils-1.0 libgstriff-1.0 \
		libgstrtp-1.0 libgstrtsp-1.0 libgstsdp-1.0 libgsttag-1.0 \
		libgstvideo-1.0
	fixPkgconfig

	mv -f $includeDir/gstreamer-1.0/gst $includeDir/
	rm -rf $includeDir/gstreamer-1.0

	# devel package
	packageEntries devel $developDir
}
