# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Maintainer: Fabian Bornschein <fabiscafe@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>

pkgbase=gnome-online-accounts
pkgname=(
  gnome-online-accounts
  libgoa
)
pkgver=3.56.1
pkgrel=1
pkgdesc="Single sign-on framework for GNOME"
url="https://wiki.gnome.org/Projects/GnomeOnlineAccounts"
arch=(x86_64 aarch64)
license=(LGPL-2.0-or-later)
depends=(
  dbus
  dconf
  gcc-libs
  gcr-4
  glib2
  glibc
  gtk4
  hicolor-icon-theme
  json-glib
  keyutils
  krb5
  libadwaita
  librest
  libsecret
  libsoup3
  libxml2
)
makedepends=(
  git
  gi-docgen
  glib2-devel
  gobject-introspection
  meson
  vala
)
source=(
  # GOA tags use SSH signatures which makepkg doesn't understand
  "git+https://gitlab.gnome.org/GNOME/gnome-online-accounts.git#tag=$pkgver"
)
b2sums=('ae2c7c23df7401ceb7b2ae01ac4ddc05289f3028db8930cf31855952cfa3009059830bc0f3819089d6703cdac7ada7b967a017bbe86a019d5c630f755983d4e8')

prepare() {
  cd $pkgname
}

build() {
  local meson_options=(
    -D documentation=true
    -D man=true
  )

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

check() {
  meson test -C build --print-errorlogs
}

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

package_gnome-online-accounts() {
  depends+=("libgoa=$pkgver-$pkgrel")
  optdepends=(
    'epiphany: (or another modern browser): OAuth authentication'
    'gvfs-goa: Virtual file systems, e.g. OwnCloud'
    'gvfs-google: Google Drive'
    'gvfs-onedrive: Microsoft OneDrive'
  )
  provides=(libgoa-backend-1.0.so)

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

  cd "$pkgdir"

  _pick goa usr/include/goa-1.0/goa
  _pick goa usr/lib/libgoa-1.0.so*
  _pick goa usr/lib/girepository-1.0/Goa-1.0.typelib
  _pick goa usr/lib/goa-1.0/include
  _pick goa usr/lib/pkgconfig/goa-1.0.pc
  _pick goa usr/share/gir-1.0/Goa-1.0.gir
  _pick goa usr/share/vala/vapi/goa-1.0.*
  _pick goa usr/share/doc
}

package_libgoa() {
  pkgdesc+=" - client library"
  depends=(
    glib2 libg{lib,object,io}-2.0.so
    glibc
  )
  provides=(libgoa-1.0.so)

  mv goa/* "$pkgdir"
}

# vim:set sw=2 sts=-1 et:
