# Maintainer: Ray Donnelly <mingw.android@gmail.com>

_realname=suitesparse
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-suitesparse")
pkgver=5.8.1
pkgrel=1
pkgdesc='A suite of sparse matrix algorithms (mingw-w64)'
url="http://faculty.cse.tamu.edu/davis/suitesparse.html"
license=('GPL')
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
source=(${_realname}-${pkgver}.tar.gz::"https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v$pkgver.tar.gz"
        "0001-mingw-w64-Use-a-not-lib-as-AR_TARGET-extension.patch"
        "0002-mingw-w64-Set-SO_OPTS--shared-move-dlls-create-import-libs.patch"
        "0003-mingw-w64-no-CUDA.patch"
        "0004-mingw-w64-install-static-libs.patch"
        "0005-suitesparse-5.8.1-skip-building-Mongoose-GraphBLAS.patch"
        "0006-suitesparse-5.8.1-fix-mp-link-order.patch")
depends=("${MINGW_PACKAGE_PREFIX}-openblas"
         "${MINGW_PACKAGE_PREFIX}-metis")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake")
options=('staticlibs')
sha256sums=('06726e471fbaa55f792578f9b4ab282ea9d008cf39ddcc3b42b73400acddef40'
            '1c848ba4fd5b07d65e0f8e9f6d5153efc51292d0d487d446afbdacf25e4fd8f7'
            '537f4fcf973ee6b38437d3ccb416fe851d709edb4b84f730169dd48ac7175000'
            '8a94c54322323773442c2c60f54795d402d64ac126e2a1a67e48a0075f8571fa'
            'e0faab259d5c474c6af51c9b471f645810a308a1c83976275b1969e81e7d8390'
            'a63a1d91bb31f50010c48d112696212deafd1379cc494e711ab9e53724085d19'
            '1cf6cd948e5178cbcb16bb0d3c97829311250dedda1e9dcbe0c85dd6bdc4461e')

prepare() {
  cd "${srcdir}"/SuiteSparse-${pkgver}
  patch -p1 -i "${srcdir}"/0001-mingw-w64-Use-a-not-lib-as-AR_TARGET-extension.patch
  patch -p1 -i "${srcdir}"/0002-mingw-w64-Set-SO_OPTS--shared-move-dlls-create-import-libs.patch
  patch -p1 -i "${srcdir}"/0003-mingw-w64-no-CUDA.patch
  patch -p1 -i "${srcdir}"/0004-mingw-w64-install-static-libs.patch
  patch -p1 -i "${srcdir}"/0005-suitesparse-5.8.1-skip-building-Mongoose-GraphBLAS.patch
  patch -p1 -i "${srcdir}"/0006-suitesparse-5.8.1-fix-mp-link-order.patch
}

build() {
  [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
  cp -rf "${srcdir}"/SuiteSparse-${pkgver} build-${CARCH}

  cd "${srcdir}"/build-${CARCH}

  # This avoids needing to use a very large patch (we still get diffs but
  # that is down to a bug in format string handling somewhere where-by an
  # extra 0-padding value is emitted in exponents of scientific floats).
  [[ -d "${PWD}"/bin ]] || mkdir "${PWD}"/bin
  echo "#!/usr/bin/env bash"                         > "${PWD}"/bin/diff
  echo "/usr/bin/diff --strip-trailing-cr \"\$@\""  >> "${PWD}"/bin/diff

  # This avoids needing to use another very large patch.
  [[ -d "${PWD}"/lib ]] || mkdir "${PWD}"/lib
  ar cru "${PWD}"/lib/librt.a

  PATH=${PWD}/bin:"${PATH}"          \
  CC=gcc                             \
  CXX=g++                            \
  CFLAGS="-DLONGBLAS='long long'"    \
  CXXFLAGS="-DLONGBLAS='long long'"  \
  LDFLAGS="-L${PWD}/lib"             \
  MY_METIS_LIB=-lmetis               \
  BLAS=-lopenblas                    \
  LAPACK=-lopenblas                  \
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    make CMAKE_OPTIONS="-G\"MSYS Makefiles\" -DCMAKE_INSTALL_PREFIX=\"${MINGW_PREFIX}\" -DCMAKE_BUILD_TYPE=Release"
}

package() {
  mkdir -p "${pkgdir}"${MINGW_PREFIX}/{bin,lib,include} || true

  cd "${srcdir}"/build-${CARCH}

  PATH=${PWD}/bin:"${PATH}"               \
  CC=gcc                                  \
  CXX=g++                                 \
  CFLAGS="-DLONGBLAS='long long'"         \
  CXXFLAGS="-DLONGBLAS='long long'"       \
  MY_METIS_LIB=-lmetis                    \
  BLAS=-lopenblas                         \
  LAPACK=-lopenblas                       \
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  make install                          \
    INSTALL="${pkgdir}"${MINGW_PREFIX}  \
    DESTDIR="${pkgdir}"                 \
    CMAKE_OPTIONS="-G\"MSYS Makefiles\" -DCMAKE_INSTALL_PREFIX=\"${MINGW_PREFIX}\" -DCMAKE_BUILD_TYPE=Release"
}
