# Maintainer: ?

_realname=krita
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=6.0.1
pkgrel=3
pkgdesc="A professional FREE and open source painting program (mingw-w64)"
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url="https://krita.org/"
msys2_repository_url='https://invent.kde.org/graphics/krita'
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}-kcolorscheme"
  "${MINGW_PACKAGE_PREFIX}-kcompletion"
  "${MINGW_PACKAGE_PREFIX}-kconfig"
  "${MINGW_PACKAGE_PREFIX}-kcoreaddons"
  "${MINGW_PACKAGE_PREFIX}-kcrash"
  "${MINGW_PACKAGE_PREFIX}-kguiaddons"
  "${MINGW_PACKAGE_PREFIX}-ki18n"
  "${MINGW_PACKAGE_PREFIX}-kitemviews"
  "${MINGW_PACKAGE_PREFIX}-kwidgetsaddons"
  "${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}-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-qt6"
  "${MINGW_PACKAGE_PREFIX}-python"
  "${MINGW_PACKAGE_PREFIX}-qt6-base"
  "${MINGW_PACKAGE_PREFIX}-qt6-svg"
  "${MINGW_PACKAGE_PREFIX}-qt6-declarative"
  "${MINGW_PACKAGE_PREFIX}-qt6-5compat"
  "${MINGW_PACKAGE_PREFIX}-quazip"
  "${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"
  "${MINGW_PACKAGE_PREFIX}-kitemmodels"
  "${MINGW_PACKAGE_PREFIX}-kseexpr"
  "${MINGW_PACKAGE_PREFIX}-lager"
  "${MINGW_PACKAGE_PREFIX}-python-pyqt6"
  "${MINGW_PACKAGE_PREFIX}-qt6-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: 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
        003-use-default-abi-version.patch
        005-no-installer.patch
        006-fix-kf-flag-conflict.patch
        007-fix-qvariant-incomplete-type.patch
        008-fix-xsimd-assembler-version-regex.patch)
sha256sums=('aeaab7959b610eca5025af81eb54db2ce5985f98208d4390b08ee4ceb969c1f5'
            'a5680deef222fa56f0c2b7b4849ad82b831f4afc23b0fd4b5ba4944a6855ca1c'
            'db4bb1591015d1b4cca030bf9beaf58c6335958e3986b78444bf350d71bf18aa'
            '67a1ff5571bd23d3ec1b4d2c77d25fd3248b707eeaf696c56b6a3475117f6894'
            '33b2480676f4e669adea3eece58ad23523f8cca29b20eff51659cea34f9b7f1c'
            '0074ef9a734607fbec1882710ca9a1bd29df2ee09b54c709ce46e22295131a48'
            'fef1914b9270cdd381170e805dfbdfc4c70724ce98ad0a8ad64c71ddcea037be'
            'c1e55bc4a48cc3dcbf4562f2dfcad877765804426fe0f0bcdf7e80d80976e1e8')
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 \
    003-use-default-abi-version.patch \
    005-no-installer.patch \
    006-fix-kf-flag-conflict.patch \
    007-fix-qvariant-incomplete-type.patch \
    008-fix-xsimd-assembler-version-regex.patch
}

build() {
  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" \
    -DBUILD_WITH_QT6=ON \
    -DALLOW_UNSTABLE=QT6 \
    -DENABLE_UPDATERS=OFF \
    -DPython_EXECUTABLE=${MINGW_PREFIX}/bin/python \
    -DCMAKE_INSTALL_DATAROOTDIR=share \
    -S ${_realname}-${pkgver} \
    -B build-${MSYSTEM}

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

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

  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/"
}
