# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Ray Donnelly <mingw.android@gmail.com>

_realname=cmake
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=3.12.4
pkgrel=1
pkgdesc="A cross-platform open-source make system (mingw-w64)"
arch=('any')
url="https://www.cmake.org/"
license=("MIT")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
             "${MINGW_PACKAGE_PREFIX}-pkg-config"
             "${MINGW_PACKAGE_PREFIX}-qt5")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
         "${MINGW_PACKAGE_PREFIX}-curl"
         "${MINGW_PACKAGE_PREFIX}-expat"
         "${MINGW_PACKAGE_PREFIX}-jsoncpp"
         "${MINGW_PACKAGE_PREFIX}-libarchive"
         "${MINGW_PACKAGE_PREFIX}-libuv"
         "${MINGW_PACKAGE_PREFIX}-rhash"
         "${MINGW_PACKAGE_PREFIX}-zlib")
optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI")
options=('staticlibs') # '!strip' 'debug'
source=("https://www.cmake.org/files/v${pkgver%.*}/${_realname}-${pkgver}.tar.gz"
        "0001-Windows-Add-missing-stringapiset.h-include.patch"
        "0003-Disable-response-files-for-MSYS-Generator.patch"
        "0004-Implement-Qt5-static-plugin-support.patch"
        "0005-Do-not-install-Qt-bundle-in-cmake-gui.patch"
        "0006-pkg-config-Add-dont-define-prefix-when-PKG_CONFIG_WI.patch"
        "0007-Do-not-generate-import-libs-for-exes.patch"
        "0008-Output-line-numbers-in-callstacks.patch")
sha256sums=('5255584bfd043eb717562cff8942d472f1c0e4679c4941d84baadaa9b28e3194'
            'e747f6a2de187d1ad469872432a2afd15252dafe4babf5b2c713372c864ef8ba'
            '77763df03e8a9ca66c3f9368fe7e1fc36bb041455733258d73aeb40246a61354'
            '4402730b932e94630beecbc596fe33868338b162f200e8c0464ac71acf4b0fbe'
            '7eb60d12b610c70413412521dcc860d1948c169e721f3525d9be99b3913dc37e'
            'b3905abed55c012108b0254c69cb4027a739f15772500b0a99c400d9dfdf50a7'
            'c6c312f488cd8bb0c73d026c3fbbafedf64e8d01469fc94799edea0660915164'
            '6123b49887fb09c110b2223e9230f0a84824a5d191aaa8971a6a11339c76cf52')


# Helper macros to help make tasks easier #
apply_patch_with_msg() {
  for _patch in "$@"
  do
    msg2 "Applying $_patch"
    patch -Nbp1 -i "${srcdir}/$_patch"
  done
}

del_file_exists() {
  for _fname in "$@"
  do
    if [ -f $_fname ]; then
      rm -rf $_fname
    fi
  done
}
# =========================================== #


prepare() {
  cd ${_realname}-${pkgver}
  apply_patch_with_msg \
    0001-Windows-Add-missing-stringapiset.h-include.patch \
    0003-Disable-response-files-for-MSYS-Generator.patch \
    0004-Implement-Qt5-static-plugin-support.patch \
    0005-Do-not-install-Qt-bundle-in-cmake-gui.patch \
    0006-pkg-config-Add-dont-define-prefix-when-PKG_CONFIG_WI.patch \
    0007-Do-not-generate-import-libs-for-exes.patch \
    0008-Output-line-numbers-in-callstacks.patch
}

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

  MSYSTEM=MINGW \
    "${srcdir}"/${_realname}-${pkgver}/configure  \
    --prefix=${MINGW_PREFIX}                      \
    --system-libs                                 \
    --no-system-expat                             \
    --qt-gui                                      \
    --parallel=${NUMBER_OF_PROCESSORS}            \
    --mandir=share                                \
    --docdir=share/doc/cmake

  plain "Start building..."
  make
}

package() {
  cd "${srcdir}/build-${MINGW_CHOST}"
  ./bin/cmake.exe -DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} -P cmake_install.cmake
}
