
_realname=krita
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=5.2.14
pkgrel=1
pkgdesc="A professional FREE and open source painting program (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://krita.org/"
license=("spdx:GPL-3.0-only")
depends=(
  "${MINGW_PACKAGE_PREFIX}-angleproject"
  "${MINGW_PACKAGE_PREFIX}-exiv2"
  "${MINGW_PACKAGE_PREFIX}-fftw"
  "${MINGW_PACKAGE_PREFIX}-fontconfig"
  "${MINGW_PACKAGE_PREFIX}-freetype"
  "${MINGW_PACKAGE_PREFIX}-fribidi"
  "${MINGW_PACKAGE_PREFIX}-cc-libs"
  "${MINGW_PACKAGE_PREFIX}-giflib"
  "${MINGW_PACKAGE_PREFIX}-gsl"
  "${MINGW_PACKAGE_PREFIX}-harfbuzz"
  "${MINGW_PACKAGE_PREFIX}-icoutils"
  "${MINGW_PACKAGE_PREFIX}-imath"
  "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme"
  "${MINGW_PACKAGE_PREFIX}-kcompletion-qt5"
  "${MINGW_PACKAGE_PREFIX}-kconfig-qt5"
  "${MINGW_PACKAGE_PREFIX}-kcoreaddons-qt5"
  "${MINGW_PACKAGE_PREFIX}-kguiaddons-qt5"
  "${MINGW_PACKAGE_PREFIX}-ki18n-qt5"
  "${MINGW_PACKAGE_PREFIX}-kitemviews-qt5"
  "${MINGW_PACKAGE_PREFIX}-kwidgetsaddons-qt5"
  "${MINGW_PACKAGE_PREFIX}-kwindowsystem-qt5"
  "${MINGW_PACKAGE_PREFIX}-lcms2"
  "${MINGW_PACKAGE_PREFIX}-libheif"
  "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
  "${MINGW_PACKAGE_PREFIX}-libjxl"
  "${MINGW_PACKAGE_PREFIX}-libmypaint"
  "${MINGW_PACKAGE_PREFIX}-libpng"
  #"${MINGW_PACKAGE_PREFIX}-libraw" KF5KDcraw
  "${MINGW_PACKAGE_PREFIX}-libtiff"
  "${MINGW_PACKAGE_PREFIX}-libunibreak"
  "${MINGW_PACKAGE_PREFIX}-libwebp"
  "${MINGW_PACKAGE_PREFIX}-mlt"
  "${MINGW_PACKAGE_PREFIX}-opencolorio"
  "${MINGW_PACKAGE_PREFIX}-openexr"
  "${MINGW_PACKAGE_PREFIX}-openjpeg2"
  "${MINGW_PACKAGE_PREFIX}-poppler-qt5"
  "${MINGW_PACKAGE_PREFIX}-python"
  "${MINGW_PACKAGE_PREFIX}-qt5-base"
  "${MINGW_PACKAGE_PREFIX}-qt5-svg"
  "${MINGW_PACKAGE_PREFIX}-quazip-qt5"
  "${MINGW_PACKAGE_PREFIX}-zlib"
)
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-cc"
  "${MINGW_PACKAGE_PREFIX}-boost"
  "${MINGW_PACKAGE_PREFIX}-eigen3"
  "${MINGW_PACKAGE_PREFIX}-extra-cmake-modules"
  "${MINGW_PACKAGE_PREFIX}-immer"
  "${MINGW_PACKAGE_PREFIX}-kdoctools-qt5"
  "${MINGW_PACKAGE_PREFIX}-kitemmodels-qt5"
  "${MINGW_PACKAGE_PREFIX}-kseexpr"
  "${MINGW_PACKAGE_PREFIX}-lager"
  "${MINGW_PACKAGE_PREFIX}-python-pyqt5"
  "${MINGW_PACKAGE_PREFIX}-qt5-tools"
  "${MINGW_PACKAGE_PREFIX}-sip"
  "${MINGW_PACKAGE_PREFIX}-xsimd"
  "${MINGW_PACKAGE_PREFIX}-zug"
)
optdepends=(
  "${MINGW_PACKAGE_PREFIX}-ffmpeg: Support for saving animations"
  "${MINGW_PACKAGE_PREFIX}-kimageformats-qt5: Support for PSD files"
  "${MINGW_PACKAGE_PREFIX}-kseexpr: SeExpr generator layer"
)
source=("https://download.kde.org/stable/${_realname}/${pkgver}/${_realname}-${pkgver}.tar.xz"
        001-mingw-interface-conflict.patch
        002-exiv2-missing-wpath.patch
        004-fix-build-with-libcxx-21.patch::https://invent.kde.org/graphics/krita/-/commit/cc113e99.patch
        005-no-installer.patch)
sha256sums=('41770910517a8d4546f7028c4725b3bd44c69d10d328c978a2788dbcc707d3df'
            'a5680deef222fa56f0c2b7b4849ad82b831f4afc23b0fd4b5ba4944a6855ca1c'
            'db4bb1591015d1b4cca030bf9beaf58c6335958e3986b78444bf350d71bf18aa'
            '5eb13ab9fb672b3bed87e81a13572cb0e0c658dac5cc3b1a3ae37db18af126d8'
            '33b2480676f4e669adea3eece58ad23523f8cca29b20eff51659cea34f9b7f1c')
noextract=("krita-${pkgver}.tar.xz")

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

prepare() {
  echo "Extracting krita-${pkgver}.tar.xz ..."
  tar -xJf krita-${pkgver}.tar.xz || true

  cd "${srcdir}/${_realname}-${pkgver}"

  apply_patch_with_msg \
    001-mingw-interface-conflict.patch \
    002-exiv2-missing-wpath.patch \
    004-fix-build-with-libcxx-21.patch \
    005-no-installer.patch
}

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

  declare -a _extra_config
  if check_option "debug" "n"; then
    _extra_config+=("-DCMAKE_BUILD_TYPE=Release")
  else
    _extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
  fi

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -GNinja \
    "${_extra_config[@]}" \
    -DCMAKE_CXX_STANDARD=17 \
    -DBUILD_TESTING="OFF" \
    -DPython_EXECUTABLE=${MINGW_PREFIX}/bin/python \
    ../${_realname}-${pkgver}

  ${MINGW_PREFIX}/bin/cmake --build .
}

package() {
  cd "${srcdir}/build-${MSYSTEM}"

  DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake.exe --install .

  install -vDm 644 "${srcdir}"/${_realname}-${pkgver}/COPYING -t "${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname/"
  install -vDm 644 "${srcdir}"/${_realname}-${pkgver}/{AUTHORS,README.md} -t "${pkgdir}${MINGW_PREFIX}/share/doc/$_realname/"
}
