# Maintainer: RafaƂ Brzegowy _realname=pastix pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=6.4.0 pkgrel=1 pkgdesc='High performance parallel solver for very large sparse linear systems based on direct methods (mingw-w64)' arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') msys2_references=( 'aur: pastix' ) depends=("${MINGW_PACKAGE_PREFIX}-openblas" "${MINGW_PACKAGE_PREFIX}-hwloc" "${MINGW_PACKAGE_PREFIX}-metis" "${MINGW_PACKAGE_PREFIX}-scotch" "${MINGW_PACKAGE_PREFIX}-starpu" "${MINGW_PACKAGE_PREFIX}-python") makedepends=("${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-fc" "${MINGW_PACKAGE_PREFIX}-opencl-headers" 'git') provides=("${MINGW_PACKAGE_PREFIX}-spm") license=('LGPL') url="https://gitlab.inria.fr/solverstack/pastix" source=("git+https://gitlab.inria.fr/solverstack/pastix.git#tag=v${pkgver}" "0001-pastix-workaround-gitmodules-url.patch") sha256sums=('SKIP' '554c7defae1c0049aca8d5156a2d476bdd7eba4dff137dbd2d8bbe210007ecac') _apply_patch_with_msg() { for _patch in "$@" do msg2 "Applying ${_patch}" git apply "${srcdir}/${_patch}" done } prepare() { cd "${_realname}" _apply_patch_with_msg \ 0001-pastix-workaround-gitmodules-url.patch git submodule update --init --recursive } build() { local _arch_opt="" if [ "${CARCH}" = "i686" ]; then _arch_opt="-DBUILD_64bits=OFF" fi #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 \ -GNinja \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DPASTIX_INT64=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DPASTIX_WITH_PARSEC=OFF \ -DPASTIX_WITH_STARPU=ON \ -DPASTIX_ORDERING_PTSCOTCH=OFF \ -DPASTIX_ORDERING_SCOTCH=ON \ -DPASTIX_ORDERING_METIS=ON \ -DPASTIX_WITH_MPI=OFF \ -DBUILD_DOCUMENTATION=OFF \ -DBUILD_TESTING=ON \ -DPASTIX_WITH_FORTRAN=$([[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]] && echo "ON" || echo "OFF") \ -DPython3_EXECUTABLE=${MINGW_PREFIX}/bin/python.exe \ ${_arch_opt} \ ../${_realname} ${MINGW_PREFIX}/bin/cmake --build . #Shared Build [[ -d "${srcdir}/build-${MINGW_CHOST}-shared" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}-shared" mkdir -p "${srcdir}/build-${MINGW_CHOST}-shared" && cd "${srcdir}/build-${MINGW_CHOST}-shared" MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -GNinja \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DPASTIX_INT64=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DPASTIX_WITH_PARSEC=OFF \ -DPASTIX_WITH_STARPU=ON \ -DPASTIX_ORDERING_PTSCOTCH=OFF \ -DPASTIX_ORDERING_SCOTCH=ON \ -DPASTIX_ORDERING_METIS=ON \ -DPASTIX_WITH_MPI=OFF \ -DBUILD_DOCUMENTATION=OFF \ -DBUILD_TESTING=ON \ -DBUILD_SHARED_LIBS=ON \ -DPASTIX_WITH_FORTRAN=$([[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]] && echo "ON" || echo "OFF") \ -DPython3_EXECUTABLE=${MINGW_PREFIX}/bin/python.exe \ ${_arch_opt} \ ../${_realname} ${MINGW_PREFIX}/bin/cmake --build . } check() { cd "${srcdir}/build-${MINGW_CHOST}-shared" ${MINGW_PREFIX}/bin/ctest cd "${srcdir}/build-${MINGW_CHOST}-static" ${MINGW_PREFIX}/bin/ctest } package() { #Static Install cd "${srcdir}/build-${MINGW_CHOST}-static" DESTDIR="${pkgdir}" cmake --install . #Shared Install cd "${srcdir}/build-${MINGW_CHOST}-shared" DESTDIR="${pkgdir}" cmake --install . #License install -Dm644 ${srcdir}/${_realname}/LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE #Remove unwanted examples files #rm -rf ${pkgdir}${MINGW_PREFIX}/examples }