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

pkgbase=modemmanager
pkgname=(modemmanager libmm-glib)
pkgver=1.18.2
pkgrel=1
pkgdesc="Mobile broadband modem management service"
arch=(x86_64)
url="https://www.freedesktop.org/wiki/Software/ModemManager/"
license=(GPL2 LGPL2.1)
depends=(systemd libgudev polkit ppp libqmi libmbim
         mobile-broadband-provider-info)
makedepends=(gtk-doc gobject-introspection vala meson git bash-completion)
checkdepends=(python-gobject python-dbus)
_commit=5a2c9229411fa6c5905b61e777122a9b49809134  # tags/1.18.2
source=("git+https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git#commit=$_commit")
sha256sums=('SKIP')

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

prepare() {
  cd ModemManager
}

build() {
  local meson_args=(
    -D dbus_policy_dir=/usr/share/dbus-1/system.d
    -D polkit=permissive
    -D dist_version="\"$pkgver-$pkgrel\""
    -D vapi=true
    -D gtk_doc=true
  )

  arch-meson ModemManager build "${meson_args[@]}"
  meson compile -C build
}

check() {
  # Tests don't work yet
  : 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_modemmanager() {
  depends+=(libmm-glib.so libg{lib,object,io,module}-2.0.so libsystemd.so libgudev-1.0.so
            libqmi-glib.so libmbim-glib.so)
  optdepends=('usb_modeswitch: install if your modem shows up as a storage drive')

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

  cd "$pkgdir"
  _pick libmm usr/include
  _pick libmm usr/lib/girepository-1.0
  _pick libmm usr/lib/libmm-glib.so*
  _pick libmm usr/lib/pkgconfig
  _pick libmm usr/share/gir-1.0
  _pick libmm usr/share/gtk-doc/html/libmm-glib
  _pick libmm usr/share/vala
}

package_libmm-glib() {
  pkgdesc="ModemManager library"
  depends=(libg{lib,object,io}-2.0.so)
  provides=(libmm-glib.so)

  mv libmm/* "$pkgdir"
}

# vim:set sw=2 et:
