
_realname=scribus
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.6.5
pkgrel=2
pkgdesc="Desktop publishing software (mingw-w64)"
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url="https://www.scribus.net"
msys2_repository_url="https://github.com/scribusproject/scribus"
msys2_references=(
  'archlinux: scribus'
)
license=('spdx:GPL-2.0-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-boost"
         "${MINGW_PACKAGE_PREFIX}-cairo"
         "${MINGW_PACKAGE_PREFIX}-freetype"
         "${MINGW_PACKAGE_PREFIX}-graphicsmagick"
         "${MINGW_PACKAGE_PREFIX}-harfbuzz-icu"
         "${MINGW_PACKAGE_PREFIX}-hunspell"
         "${MINGW_PACKAGE_PREFIX}-lcms2"
         "${MINGW_PACKAGE_PREFIX}-libcdr"
         "${MINGW_PACKAGE_PREFIX}-libfreehand"
         "${MINGW_PACKAGE_PREFIX}-libjpeg"
         "${MINGW_PACKAGE_PREFIX}-libmspub"
         "${MINGW_PACKAGE_PREFIX}-libpagemaker"
         "${MINGW_PACKAGE_PREFIX}-libpng"
         "${MINGW_PACKAGE_PREFIX}-libqxp"
         "${MINGW_PACKAGE_PREFIX}-librevenge"
         "${MINGW_PACKAGE_PREFIX}-libtiff"
         "${MINGW_PACKAGE_PREFIX}-libvisio"
         "${MINGW_PACKAGE_PREFIX}-libxml2"
         "${MINGW_PACKAGE_PREFIX}-libzmf"
         "${MINGW_PACKAGE_PREFIX}-OpenSceneGraph"
         "${MINGW_PACKAGE_PREFIX}-openssl"
         "${MINGW_PACKAGE_PREFIX}-podofo"
         "${MINGW_PACKAGE_PREFIX}-poppler"
         "${MINGW_PACKAGE_PREFIX}-python"
         "${MINGW_PACKAGE_PREFIX}-qt5-base"
         "${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-qt5-tools")
source=("https://sourceforge.net/projects/scribus/files/scribus/${pkgver}/scribus-${pkgver}.tar.xz"
        "scribus.rc"
        "001-win-config.patch"
        "002-pgf-mingw.patch"
        "003-main-mingw.patch"
        "004-cairo-no-fontconfig.patch"
        "005-qsysinfo-deprecated.patch"
        "006-bin-folder-output.patch"
        "007-plugin-link-order.patch"
        "008-missing-plugins-deps.patch"
        "009-win32-paths.patch"
        "010-win32-mingw-icon.patch")
sha256sums=('09bdb736a8ff8a437191458a36d847cc0adeca0fc059cf696474e0ba6f59ac6a'
            '11a2e32aba600fe9c7017a12f34410ebc0dca58d275a06f7e225a373e4f9f654'
            '79a852cb2116d8a9801e42f160d4ba58f98fa9d98b1ee961e2f21136095a9800'
            'e2efb54e5ca588e0041a5da90629257bf09bbffec3ca5d0ce48179e30d50f5f9'
            '0bfab484694fcc5e83aef50a90dafc5b97722b4018515bd7512232c05f37e779'
            '7055586bd158485d1804f92ed16659cb794e1001f75645972ba234961d4b23cc'
            'c2ef7a606086dc91556d5c93b4d2289f990fc9231907f3bf6bed776604d66a36'
            '80c657c4befa3ffbc4a76d197a9528b5b9b630b7b161f9657b6e130a01dd066d'
            'e7341b837fd365c152d51691418f84674631531e852baf8a0114a4b5b9f76879'
            '1faaadad889b1a734751511d1c3424df1483a377c54f6631965aa7bb079a3ac0'
            'eff90615d87df9624f2d14bbe43687dd12b5b06e125022141aad5fe44333e6f9'
            '6fe9b7805ef988947d3e3c0fd3f1cc1118a3c0e954e826b6c045745ab2d6b800')
#options=('!strip' 'debug')

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

prepare() {
  cd "${_realname}-${pkgver}"

  cp "${srcdir}/scribus.rc" ./scribus/
  cp "win32/msvc2022/scribus-main/resource.h" ./scribus
  cp "win32/msvc2022/scribus-main/scribusicon.ico" ./scribus
  cp "win32/msvc2022/scribus-main/scribusdoc.ico" ./scribus
  cp "win32/msvc2022/Scribus-version-infos.h" ./scribus

  apply_patch_with_msg \
    001-win-config.patch \
    002-pgf-mingw.patch \
    003-main-mingw.patch \
    004-cairo-no-fontconfig.patch \
    005-qsysinfo-deprecated.patch \
    006-bin-folder-output.patch \
    007-plugin-link-order.patch \
    008-missing-plugins-deps.patch \
    009-win32-paths.patch \
    010-win32-mingw-icon.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")
    _extra_config+=("-DWANT_DEBUG=ON")
  fi

  mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"
  CFLAGS="-DUNICODE -D_UNICODE" \
  CXXFLAGS="-DUNICODE -D_UNICODE" \
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    ${MINGW_PREFIX}/bin/cmake \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
      "${_extra_config[@]}" \
      -DWANT_DISTROBUILD=ON \
      -DWANT_RELOCATABLE=ON \
      -DWANT_CPP17=ON \
      -DWANT_GRAPHICSMAGICK=ON \
      -DLIBPODOFO_SHARED=ON \
      -D2GEOM_BUILD_SHARED=ON \
      -DZLIB_USE_STATIC_LIBS=ON \
      ../${_realname}-${pkgver}
  
  ${MINGW_PREFIX}/bin/cmake --build .
}

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

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

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