_realname=zoitechat
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.18.0
pkgrel=1
pkgdesc='An easy to use graphical IRC (chat) client, based on HexChat (mingw-w64)'
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://zoitechat.org/'
msys2_repository_url="https://github.com/ZoiteChat/zoitechat"
msys2_references=(
  "anitya: 389755"
)
license=('spdx:GPL-2.0-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-cairo"
         "${MINGW_PACKAGE_PREFIX}-dbus-glib"
         "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2"
         "${MINGW_PACKAGE_PREFIX}-gettext-runtime"
         "${MINGW_PACKAGE_PREFIX}-glib2"
         "${MINGW_PACKAGE_PREFIX}-gtk3"
         "${MINGW_PACKAGE_PREFIX}-libwinpthread"
         "${MINGW_PACKAGE_PREFIX}-openssl"
         "${MINGW_PACKAGE_PREFIX}-pango")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-meson"
             "${MINGW_PACKAGE_PREFIX}-pkgconf"
             "${MINGW_PACKAGE_PREFIX}-gettext-tools"
             "${MINGW_PACKAGE_PREFIX}-iso-codes"
             "${MINGW_PACKAGE_PREFIX}-luajit"
             "${MINGW_PACKAGE_PREFIX}-perl"
             "${MINGW_PACKAGE_PREFIX}-python-cffi")
optdepends=("${MINGW_PACKAGE_PREFIX}-enchant: Spell check"
            "${MINGW_PACKAGE_PREFIX}-iso-codes: Display language names instead of codes"
            "${MINGW_PACKAGE_PREFIX}-luajit: Lua plugin"
            "${MINGW_PACKAGE_PREFIX}-perl: Perl plugin"
            "${MINGW_PACKAGE_PREFIX}-python-cffi: Python plugin")
source=("${msys2_repository_url}/archive/refs/tags/${_realname}-${pkgver}.tar.gz"
        0001-meson-add-winpthread.patch
        0002-fix-plugin-search.patch
        0003-libdir.patch
        0004-perl-flags.patch
        0005-icon.patch
        0006-enchant-dll-name.patch
        zoitechat.rc)
sha256sums=('6a646086482188212340ef69da013cb58d657081ee8e0dc64f80e13cde34f4a9'
            'b3e2e7ad190bdec7f2cfb50276b2d62f0070f8af89e951561d3014a80c750c9e'
            '02d87882b514628acdb05ffe21a716eb74a97dc28eae517f88a1db3c62f0c19f'
            '44ff71df044ac2707c976e22801abcd7b55dfdbe888212f5391c13de30ce094e'
            'c01da59a2541b4505c19d1655dff9d482e7b3db1f01fa47f507cca6ee1dd2499'
            '6d8c6cbe704d210b6b418a17f70dea4c7fcca591828b5a146d4c09d0ef08a1d7'
            '8edcb29a62f2f6111d4fc267b17f01c858989bd7d182f1de7b5517be654b001d'
            'da77439165edf95d65b790885ef7da1a3cbaf7a812c61b72f1f3cfae76ba52b6')

apply_patch_with_msg() {
  for _patch in "$@"
  do
    msg2 "Applying $_patch"
    patch -Nbp1 -i "${srcdir}/$_patch"
  done
}

prepare() {
  cd "${_realname}-${_realname}-${pkgver}"
  apply_patch_with_msg \
    0001-meson-add-winpthread.patch \
    0002-fix-plugin-search.patch \
    0003-libdir.patch \
    0004-perl-flags.patch \
    0005-icon.patch \
    0006-enchant-dll-name.patch

  cp "${srcdir}/zoitechat.rc" ./
}

build() {
  mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"

  declare -a _extra_config
  if check_option "debug" "n"; then
    _extra_config+=("--buildtype=release")
  else
    _extra_config+=("--buildtype=debug")
  fi

  MSYS2_ARG_CONV_EXCL="--prefix=" \
  ${MINGW_PREFIX}/bin/meson.exe \
    --prefix="${MINGW_PREFIX}" \
    "${_extra_config[@]}" \
    --wrap-mode=nodownload \
    -Dtext-frontend=true \
    -Dwith-upd=false \
    "../${_realname}-${_realname}-${pkgver}"

  ${MINGW_PREFIX}/bin/meson.exe compile
}

check() {
  cd "${srcdir}/build-${MSYSTEM}"
  ${MINGW_PREFIX}/bin/meson.exe test || true
}

package() {
  cd "${srcdir}/build-${MSYSTEM}"
  DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/meson.exe install

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