# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Ignacio Casal Quinteiro <icq@gnome.org>
# Contributor: Renato Silva <br.renatosilva@gmail.com>
# Contributor: Ray Donnelly <mingw.android@gmail.com>

_realname=glib2
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.64.1
pkgrel=1
url="https://www.gtk.org/"
arch=('any')
pkgdesc="Common C routines used by GTK+ 2.4 and other libs (mingw-w64)"
license=(LGPL2)
install=glib2-${CARCH}.install
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
         "${MINGW_PACKAGE_PREFIX}-gettext"
         "${MINGW_PACKAGE_PREFIX}-pcre"
         "${MINGW_PACKAGE_PREFIX}-libffi"
         "${MINGW_PACKAGE_PREFIX}-zlib"
         "${MINGW_PACKAGE_PREFIX}-python3")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
             "${MINGW_PACKAGE_PREFIX}-meson"
             "${MINGW_PACKAGE_PREFIX}-gtk-doc"
             "${MINGW_PACKAGE_PREFIX}-python3-setuptools")
source=("https://download.gnome.org/sources/glib/${pkgver%.*}/glib-${pkgver}.tar.xz"
        0001-Update-g_fopen-g_open-and-g_creat-to-open-with-FILE_.patch
        0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch
        0001-disable-some-tests-when-static.patch
        pyscript2exe.py)
sha256sums=('17967603bcb44b6dbaac47988d80c29a3d28519210b28157c2bd10997595bbc7'
            '51d02360a1ee978fd45e77b84bca9cfbcf080d91986b5c0efe0732779c6a54ec'
            '1e3ac7cfd4644f3849704e54fcfbb12d15440a33cd5c2d014d4a479c6aaab185'
            '0f44135a139e3951c4b5fa7d4628d75226e0666d891faf524777e1d1ec3b440b'
            '00e03a8b9d45e620c6fabbf96f5ccb41d1e49cc9b35ccb846d423f235ad5bec6')

prepare() {
  cd "${srcdir}/glib-${pkgver}"

  patch -Np1 -i "${srcdir}"/0001-Update-g_fopen-g_open-and-g_creat-to-open-with-FILE_.patch
  patch -Np1 -i "${srcdir}"/0001-win32-Make-the-static-build-work-with-MinGW-when-pos.patch
  patch -Np1 -i "${srcdir}"/0001-disable-some-tests-when-static.patch
}

build() {
  msg "Build static version"
  [[ -d "${srcdir}"/build-${CARCH}-static ]] && rm -rf "${srcdir}"/build-${CARCH}-static
  mkdir "${srcdir}"/build-${CARCH}-static && cd "${srcdir}"/build-${CARCH}-static

  meson \
    --buildtype=plain \
    --default-library=static \
    -Dforce_posix_threads=true \
    "../glib-${pkgver}"
  ninja

  msg "Build shared version"
  [[ -d "${srcdir}"/build-${CARCH}-shared ]] && rm -rf "${srcdir}"/build-${CARCH}-shared
  mkdir "${srcdir}"/build-${CARCH}-shared && cd "${srcdir}"/build-${CARCH}-shared

  meson \
    --buildtype=plain \
    -Ddefault_library=shared \
    -Dman=true \
    -Dforce_posix_threads=true \
    -Dgtk_doc=false \
    "../glib-${pkgver}"

  ninja
}

package() {
  cd "${srcdir}/build-${CARCH}-static"
  DESTDIR="${pkgdir}${MINGW_PREFIX}" ninja install

  cd "${srcdir}/build-${CARCH}-shared"
  DESTDIR="${pkgdir}${MINGW_PREFIX}" ninja install

  install -Dm644 "${srcdir}/glib-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"

  local _PRE_WIN="$(cygpath -m ${MINGW_PREFIX})"
  for name in glib-mkenums glib-genmarshal gdbus-codegen gtester-report; do
    ${MINGW_PREFIX}/bin/python3 \
      "${srcdir}/pyscript2exe.py" "${pkgdir}${MINGW_PREFIX}/bin/${name}"
    sed -e "s|${_PRE_WIN}|${MINGW_PREFIX}|g" \
     -i ${pkgdir}${MINGW_PREFIX}/bin/${name}-script.py
  done

  for pcfile in  "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/*.pc; do
    sed -s "s|${_PRE_WIN}|${MINGW_PREFIX}|g" -i "${pcfile}"
  done

  sed -s "s|${_PRE_WIN}|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}/bin/glib-gettextize"
}
