# Maintainer: ImperatorS79 _realname=amgcl pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.4.5 pkgrel=1 pkgdesc="Header-only C++ library for solving large sparse linear systems with algebraic multigrid (AMG) method. (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') url='http://amgcl.readthedocs.io/' msys2_repository_url="https://github.com/ddemidov/amgcl" license=('spdx:MIT') makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-python" "${MINGW_PACKAGE_PREFIX}-eigen3" $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-fc") "${MINGW_PACKAGE_PREFIX}-scotch") depends=() source=("https://github.com/ddemidov/amgcl/archive/${pkgver}/${_realname}-${pkgver}.tar.gz" "0001-cmake.patch") sha256sums=('611b7e46b60640abab055d815e2b28af3cb92e71fa609c514465f94b51c1f886' '51130fd7fb0a82f29173423f65de130e2bc44af7a5ac43b15a47e3ce2c50c899') apply_patch_with_msg() { for _patch in "$@" do msg2 "Applying $_patch" patch -Np1 -i "${srcdir}/$_patch" done } prepare(){ cd "${srcdir}/${_realname}-${pkgver}" # https://github.com/ddemidov/amgcl/commit/93827a00fc926d951c75f08fdb1d491912ff7065 apply_patch_with_msg \ 0001-cmake.patch } build() { mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" declare -a _extra_config if check_option "debug" "n"; then _extra_config+=("-DCMAKE_BUILD_TYPE=Release") else _extra_config+=("-DCMAKE_BUILD_TYPE=Debug") fi if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then _extra_config+=("-DAMGCL_HAVE_FORTRAN=ON") fi #Version of pastix too old in amgcl MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ "${MINGW_PREFIX}"/bin/cmake.exe -Wno-dev \ -GNinja \ -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ -DAMGCL_BUILD_TESTS=OFF \ -DAMGCL_BUILD_EXAMPLES=OFF \ "${_extra_config[@]}" \ -DAMGCL_HAVE_PYTHON=ON \ -DBoost_USE_STATIC_LIBS=OFF \ ../${_realname}-${pkgver} "${MINGW_PREFIX}"/bin/cmake.exe --build . } check() { cd "${srcdir}/build-${MSYSTEM}" "${MINGW_PREFIX}"/bin/cmake.exe \ -DAMGCL_BUILD_TESTS=ON \ -DAMGCL_BUILD_EXAMPLES=ON \ ../${_realname}-${pkgver} "${MINGW_PREFIX}"/bin/cmake.exe --build . "${MINGW_PREFIX}"/bin/cmake.exe --build . --target test } package() { cd "${srcdir}/build-${MSYSTEM}" DESTDIR="${pkgdir}" "${MINGW_PREFIX}"/bin/cmake.exe --install . local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) for _f in "${pkgdir}${MINGW_PREFIX}"/share/amgcl/cmake/*.cmake; do sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f} done install -Dm644 "${srcdir}"/${_realname}-${pkgver}/LICENSE.md \ "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE }