# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Maintainer: Fabian Bornschein <fabiscafe@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>

pkgbase=mingobject-introspection
pkgname=(
  mingobject-introspection
  mingobject-introspection-runtime
  minlibgirepository
)
cross=nf
pkgver=1.80.1
pkgrel=1.1
pkgdesc="Introspection system for GObject-based libraries"
url="https://wiki.gnome.org/Projects/GObjectIntrospection"
license=(
  GPL-2.0-or-later
  LGPL-2.0-or-later
)
_glibver=2.80.0
ncxfab_makedepends=(
  git
  python
  python-mako
  python-markdown
  python-sphinx
  flex
  bison
  meson
)
ncxfat_makedepends=(
  "minglib2=$_glibver"
  #cairo
  glibc
  #gtk-doc
  libffi
  # missing parts from base-devel
  pkgconf
)
source=(
  "git+https://gitlab.gnome.org/GNOME/gobject-introspection.git#tag=$pkgver"
  "git+https://gitlab.gnome.org/GNOME/glib.git?signed#tag=$_glibver"
)
b2sums=('1615fb991f5eba1a384ce684d89acaeb08417b65d77b33019e6e2b94ee0c7038186f0c09011268092194339cc870f3f6ef25ca8f32dc454f9a298fce36400d86'
        'cc3a6a7a14fef1aabc08d3bdfe98f66e3ecf3591ac054d83aa9404c8c9cd72e690a4c26c16934700d067bb2cb3d58730387482032cd9ffa04b041869426165ba')
validpgpkeys=(
  923B7025EE03C1C59F42684CF0942E894B2EAFA0  # Philip Withnall <philip@tecnocode.co.uk>
  D4C501DA48EB797A081750939449C2F50996635F  # Marco Trevisan <marco@trevi.me>
)

prepare() {
  cd gobject-introspection
}

build() {
  local meson_options=(
    -D glib_src_dir="$srcdir/glib"
    -D gtk_doc=false
    -D cairo=disabled
  )

  local _arch_meson_opts=(
      --prefix        $MPKG_USRPATH
      --libexecdir    lib
      --sbindir       bin
      --buildtype     plain
      --auto-features enabled
      --wrap-mode     nodownload
      -D              b_pie=true
      -D              python.bytecompile=1
  )

  meson setup "${_arch_meson_opts[@]}" gobject-introspection 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_mingobject-introspection() {
  ncxfat_depends=(
    "mingobject-introspection-runtime=$pkgver-$pkgrel"
    "minlibgirepository=$pkgver-$pkgrel"
    minglib2
    glibc
    libffi
  )
  nxt_depends=(
    python
    python-mako
    python-markdown
  )
  conflicts=(gobject-introspection)

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

  cd "$pkgdir"

  if [[ x"$MPKG_TARGETMACHINE" == x"$MPKG_HOSTMACHINE" ]]; then
      python -m compileall -d /usr/lib/$gobject-introspection usr/lib/$gobject-introspection
      python -O -m compileall -d /usr/lib/$gobject-introspection usr/lib/$gobject-introspection
  fi

  _pick libg $MPKG_BAREUSRPATH/include/gobject-introspection-1.0
  _pick libg $MPKG_BAREUSRPATH/lib/libgirepository-1.0.so*
  _pick libg $MPKG_BAREUSRPATH/lib/pkgconfig/gobject-introspection*-1.0.pc
  _pick libg $MPKG_BAREUSRPATH/lib/girepository-1.0/GIRepository-2.0.typelib
  _pick libg $MPKG_BAREUSRPATH/share/gir-1.0/GIRepository-2.0.gir
  #_pick libg usr/share/gtk-doc

  _pick runtime $MPKG_BAREUSRPATH/lib/girepository-1.0
}

package_mingobject-introspection-runtime() {
  pkgdesc+=" - runtime"
  ncxfat_depends=("minlibgirepository=$pkgver-$pkgrel")
  conflicts=(gobject-introspection-runtime)

  mv runtime/* "$pkgdir"
}

package_minlibgirepository() {
  pkgdesc+=" - runtime library"
  ncxfat_depends=(
    minglib2
    glibc
    libffi
    libffi.so
    #libg{lib,object,module}-2.0.so
  )
  provides=(libgirepository-1.0.so)
  conflicts=(libgirepository)

  mv libg/* "$pkgdir"
}

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