# Maintainer: Alexey Pavlov <Alexpux@gmail.com>

_realname=gimp
_pkgversuffix=RC3
_pkgver=3.0.0
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=${_pkgver}${_pkgversuffix}
pkgrel=1
pkgdesc="GNU Image Manipulation Program (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://www.gimp.org/downloads/devel/"
msys2_repository_url="https://gitlab.gnome.org/GNOME/gimp"
msys2_references=(
  'aur: gimp-devel'
  "cpe: cpe:/a:gimp:gimp"
)
license=('spdx:GPL-3.0-or-later AND LGPL-3.0-or-later')
provides=("${MINGW_PACKAGE_PREFIX}-gimp3")
conflicts=(
  "${MINGW_PACKAGE_PREFIX}-gimp3"
  "${MINGW_PACKAGE_PREFIX}-gimp2"
)
replaces=("${MINGW_PACKAGE_PREFIX}-gimp3")
depends=("${MINGW_PACKAGE_PREFIX}-aalib"
         "${MINGW_PACKAGE_PREFIX}-appstream-glib"
         "${MINGW_PACKAGE_PREFIX}-atk"
         "${MINGW_PACKAGE_PREFIX}-babl"
         "${MINGW_PACKAGE_PREFIX}-brotli"
         "${MINGW_PACKAGE_PREFIX}-cairo"
         "${MINGW_PACKAGE_PREFIX}-cfitsio"
         "${MINGW_PACKAGE_PREFIX}-drmingw"
         "${MINGW_PACKAGE_PREFIX}-gegl"
         "${MINGW_PACKAGE_PREFIX}-gettext-runtime"
         "${MINGW_PACKAGE_PREFIX}-gexiv2"
         "${MINGW_PACKAGE_PREFIX}-ghostscript"
         "${MINGW_PACKAGE_PREFIX}-gi-docgen"
         "${MINGW_PACKAGE_PREFIX}-glib2"
         "${MINGW_PACKAGE_PREFIX}-glib-networking"
         "${MINGW_PACKAGE_PREFIX}-graphviz"
         "${MINGW_PACKAGE_PREFIX}-gtk3"
         "${MINGW_PACKAGE_PREFIX}-headers-git"
         "${MINGW_PACKAGE_PREFIX}-iso-codes"
         "${MINGW_PACKAGE_PREFIX}-json-c"
         "${MINGW_PACKAGE_PREFIX}-json-glib"
         "${MINGW_PACKAGE_PREFIX}-lcms2"
         "${MINGW_PACKAGE_PREFIX}-lensfun"
         "${MINGW_PACKAGE_PREFIX}-libarchive"
         "${MINGW_PACKAGE_PREFIX}-libheif"
         "${MINGW_PACKAGE_PREFIX}-libiff"
         "${MINGW_PACKAGE_PREFIX}-libjxl"
         "${MINGW_PACKAGE_PREFIX}-libilbm"
         "${MINGW_PACKAGE_PREFIX}-libmng"
         "${MINGW_PACKAGE_PREFIX}-libmypaint"
         "${MINGW_PACKAGE_PREFIX}-libspiro"
         "${MINGW_PACKAGE_PREFIX}-libwebp"
         "${MINGW_PACKAGE_PREFIX}-libwmf"
         "${MINGW_PACKAGE_PREFIX}-luajit"
         "${MINGW_PACKAGE_PREFIX}-lua51-lgi"
         "${MINGW_PACKAGE_PREFIX}-maxflow"
         "${MINGW_PACKAGE_PREFIX}-mypaint-brushes"
         "${MINGW_PACKAGE_PREFIX}-omp"
         "${MINGW_PACKAGE_PREFIX}-openexr"
         "${MINGW_PACKAGE_PREFIX}-pango"
         "${MINGW_PACKAGE_PREFIX}-poppler"
         "${MINGW_PACKAGE_PREFIX}-poppler-data"
         "${MINGW_PACKAGE_PREFIX}-python-gobject"
         "${MINGW_PACKAGE_PREFIX}-shared-mime-info"
         "${MINGW_PACKAGE_PREFIX}-suitesparse"
         "${MINGW_PACKAGE_PREFIX}-vala"
         "${MINGW_PACKAGE_PREFIX}-xpm-nox")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-meson"
             "${MINGW_PACKAGE_PREFIX}-gettext-tools"
             "${MINGW_PACKAGE_PREFIX}-gobject-introspection"
             "${MINGW_PACKAGE_PREFIX}-libxslt"
             "${MINGW_PACKAGE_PREFIX}-qoi")
source=("https://download.gimp.org/pub/gimp/v3.0/gimp-${_pkgver}-${_pkgversuffix}.tar.xz"
        0001-clang-rc-files-fix.patch
        0002-skip-test-env.patch)
sha256sums=('61fb527cf22d093a3f3501884796ababd3c30dd7f0e354dbdc041bef0f7e38ec'
            'f9e0c2fe6d602a5254e4e023a5cb1f66f0ba64c60df925676c2190283ae11747'
            '3b7dc1dd42f858d0ef93874164686bdee47cc5e456e60c6d3a63c307244ad6d9')

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

prepare() {
  cd "gimp-${_pkgver}-${_pkgversuffix}"
  apply_patch_with_msg \
    0001-clang-rc-files-fix.patch \
    0002-skip-test-env.patch
}

build() {
  CFLAGS+=" -Wno-incompatible-pointer-types" \
  MSYS2_ARG_CONV_EXCL="--prefix=" \
  meson setup \
    --buildtype=plain \
    --auto-features=enabled \
    --prefix=${MINGW_PREFIX} \
    -Daa=disabled \
    -Dalsa=disabled \
    -Dappdata-test=disabled \
    -Dbug-report-url="https://github.com/msys2/MINGW-packages/issues" \
    -Dcheck-update=no \
    -Ddirectx-sdk-dir="${MINGW_PREFIX}" \
    -Dgi-docgen=disabled \
    -Dgudev=disabled \
    -Dheadless-tests=disabled \
    -Djavascript=disabled \
    -Dlibbacktrace=false \
    -Dlibunwind=false \
    -Dlinux-input=disabled \
    -Dxcursor=disabled \
    "build-${MSYSTEM}" \
    "gimp-${_pkgver}-${_pkgversuffix}"

  meson compile -C "build-${MSYSTEM}"
}

package() {
  meson install -C "build-${MSYSTEM}" --destdir="${pkgdir}"

  # Adjust the python interpreter path
  sed -e "s|\=.*|\=python3w.exe|g" -i "${pkgdir}${MINGW_PREFIX}"/lib/gimp/3.0/interpreters/pygimp.interp
  sed -e "s|::python3|::python3w.exe|g" -i "${pkgdir}${MINGW_PREFIX}"/lib/gimp/3.0/interpreters/pygimp.interp

  rm -f "${pkgdir}${MINGW_PREFIX}/lib/gimp/3.0/modules/*.dll.a"

  install -Dm644 "gimp-${_pkgver}-${_pkgversuffix}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
  install -Dm644 "gimp-${_pkgver}-${_pkgversuffix}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"
}
