# Template file for 'pipewire'
pkgname=pipewire
version=0.3.21
revision=2
build_style=meson
configure_args="-Dman=true -Dgstreamer=true -Ddocs=true -Dsystemd=false
 -Dbluez5=true -Dffmpeg=true -Dpipewire-alsa=true -Dpipewire-jack=true
 -Dudevrulesdir=/usr/lib/udev/rules.d"
hostmakedepends="doxygen graphviz pkg-config xmltoman gettext"
# LDAC support can be enabled when ldacbt is packaged
makedepends="SDL2-devel ffmpeg-devel gst-plugins-base1-devel jack-devel
 sbc-devel v4l-utils-devel libva-devel libbluetooth-devel ncurses-devel
 libopenaptx-devel fdk-aac-devel"
depends="libspa-alsa libspa-audioconvert libspa-audiomixer libspa-control"
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=228e744f7acfac92e4c7a2606ed7f6ecd7460f53ec735e7c01176539e386432b
conf_files="/etc/pipewire/pipewire.conf"

replaces="libpulseaudio-pipewire>=0"

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

post_install() {
	vlicense LICENSE
}

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
	}
}
