# $Id: PKGBUILD 240772 2015-06-14 19:50:26Z heftig $
# Maintainer: tobias <tobias@archlinux.org>
# Contributor: Tobias Kieslich <tobias@justdreams.de>

shopt -s extglob

pkgname=(libgda libgda-{firebird,jdbc,mysql,postgres})
pkgver=5.2.4
pkgrel=1
pkgdesc="Data access library"
arch=(i686 x86_64)
license=(GPL)
depends=(gtksourceview3 libxslt python2 libsecret graphviz goocanvas iso-codes desktop-file-utils)
makedepends=(glade libmariadbclient postgresql-libs libfbclient jdk8-openjdk intltool
             gobject-introspection gtk-doc vala itstool gnome-common)
url="http://www.gnome-db.org/"
source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver:0:3}/${pkgname}-${pkgver}.tar.xz
        java.patch vala.patch)
sha256sums=('2cee38dd583ccbaa5bdf6c01ca5f88cc08758b9b144938a51a478eb2684b765e'
            'e28ea88d49bcb91fa6907440a6785a508fb681c463188b3805509773f5d0fc22'
            '4dfee4cbd01becf52d9e46f9207882df59fc86a40ca1e39fc260b424ec74d1bd')

_apiver=5.0

prepare() {
  mkdir providers

  cd $pkgname-$pkgver

  patch -Np1 -i ../java.patch
  patch -Np1 -i ../vala.patch

  find -name '*.py' -exec sed -i '1s/python$/&2/' {} +

  javac getsp.java
  autoreconf -fvi
}

build() {
  cd $pkgname-$pkgver
  ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
      --with-bdb=/usr --with-bdb-libdir-name=lib \
      --enable-json --enable-system-sqlite --enable-binreloc \
      --enable-gda-gi --enable-gdaui-gi \
      --enable-vala --enable-gdaui-vala \
      --enable-gtk-doc
  make
}

package_libgda() {
  optdepends=('libgda-firebird: provider for Firebird'
              'libgda-jdbc: provider for JDBC'
              'libgda-mysql: provider for MySQL'
              'libgda-postgres: provider for PostgreSQL')
  install=libgda.install
  options+=(emptydirs)

  cd $pkgname-$pkgver
  make DESTDIR="$pkgdir" install

  for _provider in firebird jdbc mysql postgres; do
    mv "$pkgdir"/usr/lib/libgda-$_apiver/providers/libgda-${_provider}?(-*).so \
       "$pkgdir"/usr/lib/pkgconfig/libgda-${_provider}-${_apiver}.pc \
       "$pkgdir"/usr/share/libgda-$_apiver/${_provider}_specs_*.xml \
       "$srcdir/providers"
  done

  mv "$pkgdir"/usr/lib/libgda-$_apiver/providers/gdaprovider-${_apiver}.jar \
     "$pkgdir"/usr/bin/gda-list-jdbc-providers-${_apiver} \
     "$srcdir/providers"
}

_packageprovider() {
  install -d "$pkgdir"/usr/lib/{pkgconfig,libgda-$_apiver/providers} \
             "$pkgdir"/usr/share/libgda-$_apiver
  mv providers/libgda-${1}?(-*).so "$pkgdir/usr/lib/libgda-$_apiver/providers"
  mv providers/libgda-${1}-5.0.pc "$pkgdir/usr/lib/pkgconfig"
  mv providers/${1}_specs_*.xml "$pkgdir/usr/share/libgda-$_apiver"
}

package_libgda-firebird() {
  pkgdesc="libgda provider for Firebird"
  depends=(libgda libfbclient)
  _packageprovider firebird
}

package_libgda-jdbc() {
  pkgdesc="libgda provider for JDBC"
  depends=(libgda java-environment)
  _packageprovider jdbc
  install -d "$pkgdir/usr/bin"
  mv providers/gda-list-jdbc-providers-${_apiver} "$pkgdir/usr/bin"
  mv providers/gdaprovider-${_apiver}.jar "$pkgdir/usr/lib/libgda-$_apiver/providers"
}

package_libgda-mysql() {
  pkgdesc="libgda provider for MySQL"
  depends=(libgda libmariadbclient)
  _packageprovider mysql
}

package_libgda-postgres() {
  pkgdesc="libgda provider for PostgreSQL"
  depends=(libgda postgresql-libs)
  _packageprovider postgres
}
