# Template file for 'pipewire'
pkgname=pipewire
version=0.3.28
revision=1
build_style=meson
configure_args="-Dman=enabled -Dgstreamer=enabled -Ddocs=enabled -Dsystemd=disabled
 -Dbluez5=enabled -Dffmpeg=enabled -Dpipewire-alsa=enabled -Dpipewire-jack=enabled
 -Dvulkan=enabled -Dudevrulesdir=/usr/lib/udev/rules.d"
hostmakedepends="doxygen graphviz pkg-config xmltoman gettext"
makedepends="ffmpeg-devel gst-plugins-base1-devel jack-devel sbc-devel v4l-utils-devel
 libva-devel libbluetooth-devel ncurses-devel libopenaptx-devel fdk-aac-devel
 libsndfile-devel Vulkan-Headers vulkan-loader $(vopt_if sdl2 SDL2-devel)"
depends="libspa-alsa>=${version}_${revision} libspa-audioconvert>=${version}_${revision}
 libspa-audiomixer>=${version}_${revision} libspa-control>=${version}_${revision}"
short_desc="Server and user space API to deal with multimedia pipelines"
maintainer="Kridsada Thanabulpong <sirn@ogsite.net>"
license="MIT"
homepage="https://pipewire.org/"
changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz"
checksum=1d9271e121a5049aef379e9bb7c50524faa6f971e668806637d7b9df1b7cab88

build_options="sdl2"

replaces="libpulseaudio-pipewire>=0"

if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
	makedepends+=" libatomic-devel"
	LDFLAGS+=" -latomic"
fi

if [ "$XBPS_TARGET_ENDIAN" = "le" ]; then
	makedepends+=" ldacBT-devel"
fi

post_install() {
	vlicense LICENSE
	vdoc "${FILESDIR}/README.voidlinux"
}

libpipewire_package() {
	short_desc+=" - pipewire library"
	pkg_install() {
		vmove "usr/lib/libpipewire-0.3.so.*"
		vmove "usr/lib/pipewire-0.3/*.so"
	}
}

pipewire-devel_package() {
	depends="libpipewire>=${version}_${revision}"
	short_desc+=" - pipewire and libspa development files"
	pkg_install() {
		vmove usr/include/pipewire-0.3
		vmove usr/include/spa-0.2
		vmove usr/lib/pkgconfig/libpipewire-0.3.pc
		vmove usr/lib/pkgconfig/libspa-0.2.pc
		vmove usr/lib/libpipewire-0.3.so
	}
}

libspa-alsa_package() {
	short_desc+=" - alsa plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/alsa
	}
}

libspa-audioconvert_package() {
	short_desc+=" - audioconvert plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/audioconvert
	}
}

libspa-audiomixer_package() {
	short_desc+=" - audiomixer plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/audiomixer
	}
}

libspa-bluetooth_package() {
	short_desc+=" - bluetooth plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/bluez5
	}
}

libspa-control_package() {
	short_desc+=" - control plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/control
	}
}

libspa-ffmpeg_package() {
	short_desc+=" - ffmpeg plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/ffmpeg
	}
}

libspa-jack_package() {
	short_desc+=" - jack plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/jack
	}
}

libspa-v4l2_package() {
	short_desc+=" - v4l2 plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/v4l2
	}
}

libspa-videoconvert_package() {
	short_desc+=" - videoconvert plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/videoconvert
	}
}

libspa-vulkan_package() {
	short_desc+=" - vulkan plugins"
	pkg_install() {
		vmove usr/lib/spa-0.2/vulkan
	}
}

gstreamer1-pipewire_package() {
	short_desc+=" - gstreamer plugin"
	pkg_install() {
		vmove usr/lib/gstreamer-1.0
	}
}

alsa-pipewire_package() {
	depends="libpipewire>=${version}_${revision}"
	short_desc+=" - ALSA client library"
	pkg_install() {
		vmove usr/lib/alsa-lib
		vmove usr/share/alsa/alsa.conf.d
	}
}

libjack-pipewire_package() {
	depends="libpipewire>=${version}_${revision}"
	short_desc+=" - JACK client library"
	pkg_install() {
		vmove usr/lib/pipewire-0.3/jack
		vmove usr/bin/pw-jack
	}
}

pipewire-doc_package() {
	short_desc+=" - documentation"
	pkg_install() {
		vmove usr/share/doc/pipewire/html
	}
}
