# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Chris Kitching <chriskitching@linux.com>

_basename=gst-plugins-base
pkgbase=lib32-$_basename
pkgname=(lib32-gst-plugins-base-libs lib32-gst-plugins-base)
pkgver=1.18.4
pkgrel=1
pkgdesc="GStreamer Multimedia Framework Base Plugins (32-bit)"
url="https://gstreamer.freedesktop.org/"
arch=(x86_64)
license=(LGPL)
makedepends=(lib32-gstreamer lib32-orc lib32-libxv lib32-alsa-lib lib32-cdparanoia lib32-libvisual lib32-libvorbis
             lib32-libtheora lib32-pango lib32-opus lib32-sdl2 meson git)
checkdepends=(xorg-server-xvfb)
options=(!emptydirs)
_commit=ce69d1068af058425b083aaa1b8c268b1b2e5ddd
source=("git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git#commit=$_commit")
sha512sums=('SKIP')

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

build() {
  export CC='gcc -m32'
  export CXX='g++ -m32'
  export PKG_CONFIG_PATH='/usr/lib32/pkgconfig'

  arch-meson $_basename build \
    --libdir=lib32 \
    --libexecdir=lib32 \
    -D introspection=disabled \
    -D doc=disabled \
    -D tremor=disabled \
    -D examples=disabled \
    -D gl-graphene=disabled \
    -D gobject-cast-checks=disabled \
    -D package-name="GStreamer Base Plugins (Arch Linux)" \
    -D package-origin="https://www.archlinux.org/"
  meson compile -C build
}

check() (
  mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}"
  export XDG_RUNTIME_DIR

  xvfb-run -s '-screen 0 1920x1080x24 -nolisten local +iglx -noreset' \
    meson test -C build --print-errorlogs
)

package_lib32-gst-plugins-base-libs() {
  pkgdesc="GStreamer Multimedia Framework Base Plugin libraries (32-bit)"
  depends=(lib32-gstreamer lib32-orc lib32-libxv)

  DESTDIR="$pkgdir" meson install -C build

  mkdir -p ext/lib32/gstreamer-1.0
  for _x in alsa cdparanoia libvisual ogg opengl opus pango theora vorbis; do
    _x="lib32/gstreamer-1.0/libgst${_x}.so"
    mv "$pkgdir/usr/$_x" "ext/$_x"
  done

  rm -Rf "${pkgdir}"/usr/share
  rm -Rf "${pkgdir}"/usr/include
  rm -Rf "${pkgdir}"/usr/bin
}

package_lib32-gst-plugins-base() {
  depends=("lib32-gst-plugins-base-libs=$pkgver" lib32-alsa-lib lib32-cdparanoia lib32-libvisual lib32-libvorbis
           lib32-libtheora lib32-pango lib32-opus)

  mv ext "$pkgdir/usr"
}
