# Maintainer: David Runge <dvzrv@archlinux.org>
# Contributor: Ray Rashif <schiv@archlinux.org>
# Contributor: speps <speps at aur dot archlinux dot org>

pkgbase=lilv
pkgname=(
  lilv{,-docs}
  python-lilv
)
pkgver=0.24.26
pkgrel=1
pkgdesc="A C library interface to the LV2 plug-in standard"
arch=(x86_64 aarch64)
url="https://drobilla.net/software/lilv.html"
license=(
  '0BSD OR ISC'
  ISC
)
makedepends=(
  doxygen
  libsndfile
  lv2
  meson
  python
  python-sphinx
  python-sphinx-lv2-theme
  python-sphinxygen
  serd
  sord
  sratom
  swig
)
source=(https://download.drobilla.net/$pkgname-$pkgver.tar.xz{,.sig})
sha512sums=('3d360d63391554f62d1dd44b9ba0fc28e4ccde9640da1e28ef3f127c23c9f03974b66c5bbb83f022f18810284a0e25060127d580ca2fad6213fe88920618c2ae'
            'SKIP')
b2sums=('23b7a029fd40099420e9e8de222b2534b124a93f899c03c5ada27673fc47431c95866d7d4bc5f34b80110b5142e6564e95390fd56d686ac9958ad8bf71ca6033'
        'SKIP')
validpgpkeys=('907D226E7E13FA337F014A083672782A9BF368F3') # David Robillard <d@drobilla.net>

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

build() {
  arch-meson $pkgname-$pkgver build
  meson compile -C build
}

check() {
  meson test -C build
}

package_lilv() {
  depends=(
    glibc
    serd libserd-0.so
    sord libsord-0.so
    sratom libsratom-0.so
    lv2
    zix
  )
  optdepends=(
    'libsndfile: for lv2apply'
    'lilv-docs: for documentation'
    'python-lilv: for Python bindings'
  )
  provides=(liblilv-0.so)

  meson install -C build --destdir "$pkgdir"
  (
    cd "$pkgdir"
    _pick $pkgname-docs usr/share/doc
    _pick python-$pkgbase usr/lib/python*
  )

  install -vDm 644 $pkgbase-$pkgver/LICENSES/* -t "$pkgdir/usr/share/licenses/$pkgname/"
  install -vDm 644 $pkgname-$pkgver/{NEWS,README.md} -t "$pkgdir/usr/share/doc/$pkgname/"
  # install bash completion to correct directory and remove /etc
  install -vDm 644 "$pkgdir/etc/bash_completion.d/$pkgname" -t "$pkgdir/usr/share/bash-completion/completions/"
  rm -frv "$pkgdir/etc"
}

package_lilv-docs() {
  pkgdesc+=" - documentation"

  mv -v $pkgname/* "$pkgdir"
  mv -v "$pkgdir/usr/share/doc/$pkgbase"{-0,}
  find "$pkgdir" -type f -iname "*.buildinfo" -delete
  install -vDm 644 $pkgbase-$pkgver/LICENSES/* -t "$pkgdir/usr/share/licenses/$pkgname/"
}

package_python-lilv() {
  pkgdesc+=" - Python interface"
  depends=(
    lilv
    python
    python-numpy
  )

  mv -v $pkgname/* "$pkgdir"
  install -vDm 644 $pkgbase-$pkgver/LICENSES/* -t "$pkgdir/usr/share/licenses/$pkgname/"
}
