# Maintainer: Rafal Brzegowy <rafal.brzegowy@yahoo.com>

_realname=parsec
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=3.0.2012
pkgrel=1
pkgdesc='PaRSEC: Parallel Runtime Scheduling and Execution Controller (mingw-w64)'
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
depends=()
makedepends=("flex"
             "bison"
             "${MINGW_PACKAGE_PREFIX}-hwloc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja")
license=('custom')
url='http://icl.utk.edu/parsec/'
source=("${_realname}-${pkgver}.tar.gz::https://bitbucket.org/icldistcomp/parsec/get/${_realname}-${pkgver}.tar.gz")
sha256sums=('96266C70F2069822097775C7859CE0384A21EF3C1BA7314B627966898EC0D6A6')

prepare() {
    cd ${srcdir}
    rm -rf ${_realname}-${pkgver}.tar.gz
    cp -r * ${_realname}-${pkgver}
}

build() {
  #Static Build
  [[ -d "${srcdir}/build-${MINGW_CHOST}-static" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}-static"
  mkdir -p "${srcdir}/build-${MINGW_CHOST}-static" && cd "${srcdir}/build-${MINGW_CHOST}-static"

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    ${MINGW_PREFIX}/bin/cmake \
    -G'Ninja' \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DCMAKE_BUILD_TYPE=Release \
    -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF \
    -DPARSEC_GPU_WITH_CUDA=OFF \
    -DPARSEC_WITH_DEVEL_HEADERS=ON \
    -DBUILD_SHARED_LIBS=OFF \
    -DPARSEC_DIST_WITH_MPI=OFF \
    -DBUILD_TESTING=OFF \
    ../${_realname}-${pkgver}
  ${MINGW_PREFIX}/bin/cmake --build .
}

package() {
  #Static Install
  cd "${srcdir}/build-${MINGW_CHOST}-static"
  DESTDIR=${pkgdir} cmake --build . --target install
  install -Dm644 ${srcdir}/${_realname}-${pkgver}/License.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE
}

# vim: ts=2 sw=2 et:
