# Maintainer: Fabrice Creuzot (luigifab) <code~luigifab~fr>

_realname=awf
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-gtk3"
         "${MINGW_PACKAGE_PREFIX}-${_realname}-gtk4"
         "${MINGW_PACKAGE_PREFIX}-${_realname}-qt5"
         "${MINGW_PACKAGE_PREFIX}-${_realname}-qt6")
pkgver=4.1.0
pkgrel=3
pkgdesc="Theme preview application"
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url='https://github.com/luigifab/awf-extended'
msys2_repository_url='https://github.com/luigifab/awf-extended'
license=('spdx:GPL-3.0-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-autotools"
             "${MINGW_PACKAGE_PREFIX}-gettext-tools"
             "${MINGW_PACKAGE_PREFIX}-gtk3"
             "${MINGW_PACKAGE_PREFIX}-gtk4"
             "${MINGW_PACKAGE_PREFIX}-qt5-base"
             "${MINGW_PACKAGE_PREFIX}-qt5-winextras"
             "${MINGW_PACKAGE_PREFIX}-qt6-base")
source=("https://github.com/luigifab/awf-extended/archive/v${pkgver}/awf-extended-${pkgver}.tar.gz")
sha256sums=("2a7b103b383fcc54fd128e1b0fca972e2f23acab2532b9ed053fc40debea1514")

prepare() {
  cd "awf-extended-${pkgver}"
  autoreconf -fiv
}

build() {
  for _variant in gtk3 gtk4 qt5 qt6; do
    mkdir -p "${srcdir}"/build-${MSYSTEM}-${_variant} && cd "${srcdir}"/build-${MSYSTEM}-${_variant}
    LDFLAGS+=" -mwindows" \
    ../awf-extended-${pkgver}/configure \
      --prefix="${MINGW_PREFIX}" \
      --enable-only-${_variant}
    make -s
  done
}

package_awf-gtk3() {
  depends+=("${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2"
            "${MINGW_PACKAGE_PREFIX}-gettext-runtime"
            "${MINGW_PACKAGE_PREFIX}-glib2"
            "${MINGW_PACKAGE_PREFIX}-gtk3"
            "${MINGW_PACKAGE_PREFIX}-pango")
  pkgdesc+=" for GTK3 (mingw-w64)"

  install -Dpm 755 build-${MSYSTEM}-gtk3/src/awf-gtk3 "${pkgdir}"/${MINGW_PREFIX}/bin/awf-gtk3.exe

  for file in awf-extended-${pkgver}/src/po/*.po; do
    code=$(basename "${file}" .po)
    install -dm 755 "${pkgdir}"/${MINGW_PREFIX}/share/locale/${code}/LC_MESSAGES/
    msgfmt awf-extended-${pkgver}/src/po/${code}.po \
      -o "${pkgdir}"/${MINGW_PREFIX}/share/locale/${code}/LC_MESSAGES/awf-gtk3.mo
  done

  install -Dpm 644 awf-extended-${pkgver}/LICENSE "${pkgdir}"/${MINGW_PREFIX}/share/licenses/awf-gtk3/LICENSE
}

package_awf-gtk4() {
  depends+=("${MINGW_PACKAGE_PREFIX}-cairo"
            "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2"
            "${MINGW_PACKAGE_PREFIX}-gettext-runtime"
            "${MINGW_PACKAGE_PREFIX}-glib2"
            "${MINGW_PACKAGE_PREFIX}-gtk4"
            "${MINGW_PACKAGE_PREFIX}-pango")
  pkgdesc+=" for GTK4 (mingw-w64)"

  install -Dpm 755 build-${MSYSTEM}-gtk4/src/awf-gtk4 "${pkgdir}"/${MINGW_PREFIX}/bin/awf-gtk4.exe

  for file in awf-extended-${pkgver}/src/po/*.po; do
    code=$(basename "${file}" .po)
    install -dm 755 "${pkgdir}"/${MINGW_PREFIX}/share/locale/${code}/LC_MESSAGES/
    msgfmt awf-extended-${pkgver}/src/po/${code}.po \
      -o "${pkgdir}"/${MINGW_PREFIX}/share/locale/${code}/LC_MESSAGES/awf-gtk4.mo
  done

  install -Dpm 644 awf-extended-${pkgver}/LICENSE "${pkgdir}"/${MINGW_PREFIX}/share/licenses/awf-gtk4/LICENSE
}

package_awf-qt5() {
  depends+=("${MINGW_PACKAGE_PREFIX}-cc-libs"
            "${MINGW_PACKAGE_PREFIX}-gettext-runtime"
            "${MINGW_PACKAGE_PREFIX}-qt5-base"
            "${MINGW_PACKAGE_PREFIX}-qt5-winextras")
  pkgdesc+=" for Qt5 (mingw-w64)"

  install -Dpm 755 build-${MSYSTEM}-qt5/src/awf-qt5 "${pkgdir}"/${MINGW_PREFIX}/bin/awf-qt5.exe

  for file in awf-extended-${pkgver}/src/po/*.po; do
    code=$(basename "${file}" .po)
    install -dm 755 "${pkgdir}"/${MINGW_PREFIX}/share/locale/${code}/LC_MESSAGES/
    msgfmt awf-extended-${pkgver}/src/po/${code}.po \
      -o "${pkgdir}"/${MINGW_PREFIX}/share/locale/${code}/LC_MESSAGES/awf-qt5.mo
  done

  install -Dpm 644 awf-extended-${pkgver}/LICENSE "${pkgdir}"/${MINGW_PREFIX}/share/licenses/awf-qt5/LICENSE
}

package_awf-qt6() {
  depends+=("${MINGW_PACKAGE_PREFIX}-cc-libs"
            "${MINGW_PACKAGE_PREFIX}-gettext-runtime"
            "${MINGW_PACKAGE_PREFIX}-qt6-base")
  pkgdesc+=" for Qt6 (mingw-w64)"

  install -Dpm 755 build-${MSYSTEM}-qt6/src/awf-qt6 "${pkgdir}"/${MINGW_PREFIX}/bin/awf-qt6.exe

  for file in awf-extended-${pkgver}/src/po/*.po; do
    code=$(basename "${file}" .po)
    install -dm 755 "${pkgdir}"/${MINGW_PREFIX}/share/locale/${code}/LC_MESSAGES/
    msgfmt awf-extended-${pkgver}/src/po/${code}.po \
      -o "${pkgdir}"/${MINGW_PREFIX}/share/locale/${code}/LC_MESSAGES/awf-qt6.mo
  done

  install -Dpm 644 awf-extended-${pkgver}/LICENSE "${pkgdir}"/${MINGW_PREFIX}/share/licenses/awf-qt6/LICENSE
}

# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
# vim: set ft=bash :

# generate wrappers
for _name in "${pkgname[@]}"; do
  _short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
  _func="$(declare -f "${_short}")"
  eval "${_func/#${_short}/package_${_name}}"
done
# template end;
