# Contributor: Mehdi Chinoune <mehdi.chinoune@hotmail.com>

_realname=labplot
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=2.11.1
pkgrel=2
pkgdesc="FREE, open source and cross-platform Data Visualization and Analysis software accessible to everyone. (mingw-w64)"
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url='https://labplot.org'
msys2_repository_url="https://invent.kde.org/education/labplot"
license=('spdx:GPL-2.0-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-breeze"
         "${MINGW_PACKAGE_PREFIX}-cfitsio"
         "${MINGW_PACKAGE_PREFIX}-dbc_parser_cpp"
         "${MINGW_PACKAGE_PREFIX}-discount"
         "${MINGW_PACKAGE_PREFIX}-fftw"
         "${MINGW_PACKAGE_PREFIX}-gcc-libs"
         "${MINGW_PACKAGE_PREFIX}-gsl"
         "${MINGW_PACKAGE_PREFIX}-hdf5"
         "${MINGW_PACKAGE_PREFIX}-ixion"
         "${MINGW_PACKAGE_PREFIX}-karchive"
         "${MINGW_PACKAGE_PREFIX}-kcompletion"
         "${MINGW_PACKAGE_PREFIX}-kconfig"
         "${MINGW_PACKAGE_PREFIX}-kconfigwidgets"
         "${MINGW_PACKAGE_PREFIX}-kcoreaddons"
         "${MINGW_PACKAGE_PREFIX}-kcrash"
         "${MINGW_PACKAGE_PREFIX}-ki18n"
         "${MINGW_PACKAGE_PREFIX}-kiconthemes"
         "${MINGW_PACKAGE_PREFIX}-kio"
         "${MINGW_PACKAGE_PREFIX}-kparts"
         "${MINGW_PACKAGE_PREFIX}-kservice"
         "${MINGW_PACKAGE_PREFIX}-ktextwidgets"
         "${MINGW_PACKAGE_PREFIX}-kuserfeedback"
         "${MINGW_PACKAGE_PREFIX}-kwidgetsaddons"
         "${MINGW_PACKAGE_PREFIX}-kxmlgui"
         "${MINGW_PACKAGE_PREFIX}-libcerf"
         "${MINGW_PACKAGE_PREFIX}-liborigin"
         "${MINGW_PACKAGE_PREFIX}-lz4"
         "${MINGW_PACKAGE_PREFIX}-matio"
         "${MINGW_PACKAGE_PREFIX}-netcdf"
         "${MINGW_PACKAGE_PREFIX}-orcus"
         "${MINGW_PACKAGE_PREFIX}-poppler-qt6"
         "${MINGW_PACKAGE_PREFIX}-purpose"
         "${MINGW_PACKAGE_PREFIX}-qt-advanced-docking-system"
         "${MINGW_PACKAGE_PREFIX}-qt6-base"
         "${MINGW_PACKAGE_PREFIX}-qt6-mqtt"
         "${MINGW_PACKAGE_PREFIX}-qt6-serialport"
         "${MINGW_PACKAGE_PREFIX}-qt6-svg"
         "${MINGW_PACKAGE_PREFIX}-qxlsx"
         "${MINGW_PACKAGE_PREFIX}-readstat"
         "${MINGW_PACKAGE_PREFIX}-syntax-highlighting"
         "${MINGW_PACKAGE_PREFIX}-vector_blf"
         "${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-boost"
             "${MINGW_PACKAGE_PREFIX}-gettext-tools"
             "${MINGW_PACKAGE_PREFIX}-icoutils"
             "${MINGW_PACKAGE_PREFIX}-extra-cmake-modules"
             "${MINGW_PACKAGE_PREFIX}-eigen3"
             "${MINGW_PACKAGE_PREFIX}-kdoctools"
             "${MINGW_PACKAGE_PREFIX}-knewstuff"
             "${MINGW_PACKAGE_PREFIX}-shared-mime-info")
source=("https://download.kde.org/stable/labplot/labplot-${pkgver}.tar.xz"
        "001-some-qt6-fixes.patch::https://invent.kde.org/education/labplot/-/commit/0edfd286.patch"
        "002-fix-build-with-kuserfeedback.patch"
        "003-fix-build-with-qxlsx.patch"
        "004-fix-find-poppler-qt6.patch"
        "005-fix-find-qtadvanceddocking.patch"
        "006-fix-build-with-ixion-0.20.patch")
sha256sums=('53aa6ac8df39324d99463e60d88de25346b3928da5bb0f210b0563489046679d'
            '998d361b026aa5db9153c73ca930a1843098d8ba4b7b357b1508a6361bb3aa51'
            '345dbe2802d2acf146ced5030314ad59dcae7c415bafd48698a3503999751974'
            '1525d4be3aa7c9136e4487b51b56bb0cd81cb64e0ebe54942183d3685d1ff664'
            '9d390317042c80740e0fd3b7274eb4ed8e1c50a34eafe51844f8e72351d7f117'
            'a9ad822875ead147e7e2193393b5fe3100dcd8e50b0e89017eadc2b78c8ba5e3'
            'a82756ed1a76570c9176aef3e3195e83aaef48b1697c942248c5d7f593d1dad7')

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

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

  apply_patch_with_msg \
    001-some-qt6-fixes.patch \
    002-fix-build-with-kuserfeedback.patch \
    003-fix-build-with-qxlsx.patch \
    004-fix-find-poppler-qt6.patch \
    005-fix-find-qtadvanceddocking.patch \
    006-fix-build-with-ixion-0.20.patch

  # remove conflict with breeze package
  rm data/color-schemes/BreezeDark.colors

  # clang picked it as <format> header file
  rm src/3rdparty/liborigin/FORMAT
}

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=" \
    cmake -Wno-dev \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
      "${extra_config[@]}" \
      -DBUILD_SHARED_LIBS=ON \
      -DENABLE_ORCUS=ON \
      -DENABLE_TESTS=OFF \
      -DENABLE_SDK=OFF \
      -DLOCAL_DBC_PARSER=OFF \
      -DLOCAL_VECTOR_BLF=OFF \
      -S "${_realname}-${pkgver}" \
      -B "build-${MSYSTEM}"

  cmake --build "build-${MSYSTEM}"
}

package() {
  DESTDIR="${pkgdir}" cmake --install "build-${MSYSTEM}"

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