# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>

pkgbase=lib32-pipewire
pkgname=(lib32-pipewire lib32-pipewire-jack)
pkgver=0.3.37
pkgrel=1
epoch=1
pkgdesc="Low-latency audio/video router and processor - 32-bit client library"
url="https://pipewire.org"
license=(MIT)
arch=(x86_64)
makedepends=(git meson lib32-alsa-lib lib32-systemd lib32-dbus)
_commit=c41e3553bf0a6b76d8949c081ba633f7a6343d19  # tags/0.3.37
source=("git+https://gitlab.freedesktop.org/pipewire/pipewire.git#commit=$_commit")
sha256sums=('SKIP')

pkgver() {
  cd pipewire
  git describe --tags | sed 's/-/+/g'
}

prepare() {
  cd pipewire
}

build() {
  local meson_options=(
    --libdir /usr/lib32
    -D examples=disabled
    -D man=disabled
    -D tests=disabled
    -D gstreamer=disabled
    -D gstreamer-device-provider=disabled
    -D systemd-user-service=disabled
    -D bluez5=disabled
    -D jack=disabled
    -D v4l2=disabled
    -D libcamera=disabled
    -D pw-cat=disabled
    -D udevrulesdir=/usr/lib/udev/rules.d
    -D sdl2=disabled
    -D sndfile=disabled
    -D libpulse=disabled
    -D roc=disabled
    -D avahi=disabled
    -D echo-cancel-webrtc=disabled
    -D libusb=disabled
    -D session-managers="[]"
  )

  export CC="gcc -m32"
  export CXX="g++ -m32"
  export PKG_CONFIG="i686-pc-linux-gnu-pkg-config"

  arch-meson pipewire build "${meson_options[@]}"
  meson compile -C build
}

_pick() {
  local p="$1" f d; shift
  for f; do
    d="$srcdir/$p/${f#$pkgdir/}"
    mkdir -p "$(dirname "$d")"
    mv "$f" "$d"
    rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
  done
}

_ver=${pkgver:0:3}

package_lib32-pipewire() {
  depends=(pipewire lib32-systemd libdbus-1.so libasound.so)
  optdepends=('lib32-pipewire-jack: JACK support')
  provides=(libpipewire-$_ver.so)

  meson install -C build --destdir "$pkgdir"

  ( cd "$pkgdir"

    _pick jack usr/lib32/pipewire-$_ver/jack

    rm -r usr/{bin,include,lib,share}
  )

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}

package_lib32-pipewire-jack() {
  pkgdesc+=" - JACK support"
  license+=(GPL2)  # libjackserver
  depends=(pipewire-jack lib32-pipewire libpipewire-$_ver.so)

  mv jack/* "$pkgdir"

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}

# vim:set sw=2 et:
