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

pkgbase=lv2
pkgname=(lv2 lv2-docs lv2-example-plugins)
pkgver=1.18.10
pkgrel=1
pkgdesc="Plugin standard for audio systems"
arch=(x86_64 aarch64)
url="https://lv2plug.in/"
license=(ISC)
makedepends=(
  asciidoc
  codespell
  doxygen
  flake8
  gtk2
  libsamplerate
  libsndfile
  meson
  pygmentize
  python-black
  python-lxml
  python-markdown
  python-pygments
  python-pylint
  python-rdflib
  serd
  sord
)
options=(debug)
source=(https://lv2plug.in/spec/$pkgbase-$pkgver.tar.xz{,.sig}
        spelling.patch::https://github.com/lv2/lv2/commit/56f8a6dc21e4e256587751edde188e4add8c2d13.patch
        whitespace.patch)
sha512sums=('ab4bcf593f633b1ed16c0eb6aa4525458a00655ef9c87619bf85eaa966f8fd094a8e871b825f679e0d97923f8bbbf11841ff467022390ca2f1a5b5f66ccd5d1b'
            'SKIP'
            '4005b8d59c4e1185a7bb43028e788a6588e459058b68b96a4a5a9526d41585b4d3efefdd8c99878c80bd317ade7feead3f2a328f63e0e600b03ede6c978b7340'
            'c7a06e38d4edcc19cbbefd209b6dc7f6fa2d4148de1a198b1a715a0a28fccc7e5f4a76a90919f4e98d56ec2344d17a090fd1b09470297ef28aab56a7ae68979a')
b2sums=('72f9bc50ebac5d71279e0616bb1eb3c2a6748a28ff68988294135b18c7adc68c46a52b4698faf79f633768bf850d5052128a9f84b90aa9b5f9a56721acaf04c3'
        'SKIP'
        '05c45c7c4b7970fbe5dcafc7d2698a37a1e672af420b0c7810ed0bd45bb72f6456134d83a2982d622ddf8ca204aa89da2b23da0a0a7c6b5a8a4fba2107716114'
        '272ee68edbbdd2ae2ba11aa18ac8d96c654cf6aae71a58f6aab3378f6f32d8f62607826876003f7fc78e15aeac81865a82f9017b935553d1c95ef23abe23eb47')
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
}

prepare() {
  cd lv2-$pkgver
  patch -Np1 < ../spelling.patch
  patch -Np1 < ../whitespace.patch
}

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

check() {
  meson test -C build
}

package_lv2() {
  optdepends=(
    'lv2-docs: for developer documentation'
    'lv2-example-plugins: for example plugins'
    'python-lxml: for lv2specgen.py'
    'python-markdown: for lv2specgen.py'
    'python-pygments: for lv2specgen.py'
    'python-rdflib: for lv2specgen.py'
    'sord: for lv2_validate'
  )

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

  (
    cd "$pkgdir"
    _pick lv2-docs usr/share/doc/lv2/
    _pick lv2-example-plugins usr/lib/lv2/eg-*
  )

  install -vDm 644 $pkgbase-$pkgver/COPYING -t "$pkgdir/usr/share/licenses/$pkgname/"
  install -vDm 644 $pkgbase-$pkgver/{NEWS,README.md} -t "$pkgdir/usr/share/doc/$pkgname/"
}

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

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

package_lv2-example-plugins() {
  pkgdesc+=" - example plugins"
  depends=(libsamplerate libsndfile lv2-host)
  optdepends=(
    'gtk2: for eg-sampler.lv2 and eg-scope.lv2'
  )
  groups=(lv2-plugins pro-audio)

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

# vim:set ts=2 sw=2 et:
