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

_realname=ginkgo
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=1.9.0
pkgrel=1
pkgdesc='Numerical linear algebra software package (mingw-w64)'
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64')
depends=("${MINGW_PACKAGE_PREFIX}-openmp"
         "${MINGW_PACKAGE_PREFIX}-metis"
         "${MINGW_PACKAGE_PREFIX}-hwloc")
makedepends=("${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-cc"
             'git')
license=('spdx:BSD-3-Clause')
url="https://ginkgo-project.github.io"
source=("https://github.com/ginkgo-project/${_realname}/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('18271e99f81a89cf27102f9d4e84653ae7a0cc745fcda9a7ed486c455553780b')

build() {

  #Static Build
  mkdir -p "${srcdir}/build-${MSYSTEM}-static" && cd "${srcdir}/build-${MSYSTEM}-static"
      
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    ${MINGW_PREFIX}/bin/cmake \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
      -DCMAKE_BUILD_TYPE=Release \
      -DBUILD_SHARED_LIBS=OFF \
      -DGINKGO_MIXED_PRECISION=ON \
      -DGINKGO_BUILD_OMP=ON \
      -DGINKGO_BUILD_HWLOC=ON \
      -DGINKGO_BUILD_TESTS=OFF \
      -DGINKGO_BUILD_BENCHMARKS=OFF \
      -DGINKGO_BUILD_EXAMPLES=OFF \
      -DGINKGO_ENABLE_HALF=OFF \
      ../${_realname}-${pkgver}

  ${MINGW_PREFIX}/bin/cmake --build .
  
  #Shared Build
  mkdir -p "${srcdir}/build-${MSYSTEM}-shared" && cd "${srcdir}/build-${MSYSTEM}-shared"
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    ${MINGW_PREFIX}/bin/cmake \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
      -DCMAKE_BUILD_TYPE=Release \
      -DBUILD_SHARED_LIBS=ON \
      -DGINKGO_MIXED_PRECISION=ON \
      -DGINKGO_BUILD_OMP=ON \
      -DGINKGO_BUILD_HWLOC=ON \
      -DGINKGO_BUILD_TESTS=OFF \
      -DGINKGO_BUILD_BENCHMARKS=OFF \
      -DGINKGO_BUILD_EXAMPLES=OFF \
      -DGINKGO_ENABLE_HALF=OFF \
      ../${_realname}-${pkgver}

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

package() {
  #Static Install
  cd "${srcdir}/build-${MSYSTEM}-static"
  DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install .

  #Shared Install
  cd "${srcdir}/build-${MSYSTEM}-shared"
  DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install .
  install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE
}
