From e904530ca2fef605f63232408d65c82e8814d1fc Mon Sep 17 00:00:00 2001 From: Mehdi Chinoune Date: Tue, 7 Jan 2025 17:31:23 +0000 Subject: [PATCH] frontistr: update to 5.6 --- .../001-fix-build-with-flang.patch | 12 +++++ mingw-w64-frontistr/PKGBUILD | 50 ++++++++++++------- 2 files changed, 45 insertions(+), 17 deletions(-) create mode 100644 mingw-w64-frontistr/001-fix-build-with-flang.patch diff --git a/mingw-w64-frontistr/001-fix-build-with-flang.patch b/mingw-w64-frontistr/001-fix-build-with-flang.patch new file mode 100644 index 0000000000..5f1e90f1bd --- /dev/null +++ b/mingw-w64-frontistr/001-fix-build-with-flang.patch @@ -0,0 +1,12 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -353,7 +353,9 @@ + if(WINDOWS) + list(APPEND FrontISTR_DEFINITIONS "_WINDOWS") + list(APPEND FrontISTR_LIBRARIES "ws2_32") ++ if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-range-check") ++ endif() + endif() + + diff --git a/mingw-w64-frontistr/PKGBUILD b/mingw-w64-frontistr/PKGBUILD index 1fbca8bfb2..2889ed7968 100644 --- a/mingw-w64-frontistr/PKGBUILD +++ b/mingw-w64-frontistr/PKGBUILD @@ -3,33 +3,41 @@ _realname=frontistr pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.5 -pkgrel=3 +pkgver=5.6 +pkgrel=1 pkgdesc='Open-Source Large-Scale Parallel FEM Program for Nonlinear Structural Analysis (mingw-w64)' arch=('any') -mingw_arch=('mingw64' 'ucrt64') +mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') url="https://www.frontistr.com" msys2_repository_url="https://github.com/frontistr/frontistr" license=('spdx:MIT') depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" - "${MINGW_PACKAGE_PREFIX}-omp" - "${MINGW_PACKAGE_PREFIX}-openblas" - "${MINGW_PACKAGE_PREFIX}-parmetis" + $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran") "${MINGW_PACKAGE_PREFIX}-metis" # "${MINGW_PACKAGE_PREFIX}-mumps" Couldn't be found by cmake! - "${MINGW_PACKAGE_PREFIX}-netcdf" - "${MINGW_PACKAGE_PREFIX}-seacas" - "${MINGW_PACKAGE_PREFIX}-trilinos" - "${MINGW_PACKAGE_PREFIX}-doxygen" - "${MINGW_PACKAGE_PREFIX}-scalapack" - $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran")) + "${MINGW_PACKAGE_PREFIX}-omp" + "${MINGW_PACKAGE_PREFIX}-openblas") makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-fc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" - "${MINGW_PACKAGE_PREFIX}-msmpi") -source=("https://github.com/${_realname}/${_realname}/archive/v${pkgver}.tar.gz") -sha256sums=('d4fb213d7b57ad84dca96949c6ece0d8a4499e4a2dd2deb2d038a2e605bf6005') + "${MINGW_PACKAGE_PREFIX}-doxygen" + "${MINGW_PACKAGE_PREFIX}-netcdf" + $([[ ${CARCH} == aarch64 ]] || echo \ + "${MINGW_PACKAGE_PREFIX}-msmpi" \ + "${MINGW_PACKAGE_PREFIX}-parmetis" \ + "${MINGW_PACKAGE_PREFIX}-scalapack") + "${MINGW_PACKAGE_PREFIX}-seacas" + "${MINGW_PACKAGE_PREFIX}-trilinos") +source=("https://github.com/${_realname}/${_realname}/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz" + "001-fix-build-with-flang.patch") +sha256sums=('e818698f61c4482151e7aa9d27cabfa14c8c1643a99511ec45659b883e78c742' + 'd13265d210a5263485f6100334a9faa95139c120a16ef4202cc65d2e0ffe23b4') + +prepare() { + cd ${_realname}-${pkgver} + patch -p1 -i "${srcdir}"/001-fix-build-with-flang.patch +} build() { mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" @@ -41,6 +49,12 @@ build() { _extra_config+=("-DCMAKE_BUILD_TYPE=Debug") fi + if [[ ${CARCH} != aarch64 ]]; then + _extra_config+=("-DWITH_MPI=ON") + else + _extra_config+=("-DWITH_MPI=OFF") + fi + if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then export FFLAGS="-fallow-invalid-boz" fi @@ -50,7 +64,6 @@ build() { -GNinja \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ "${_extra_config[@]}" \ - -DWITH_MPI=ON \ -DWITH_ML=ON \ ../${_realname}-${pkgver} @@ -60,8 +73,11 @@ build() { package() { cd "${srcdir}/build-${MSYSTEM}" + DESTDIR=${pkgdir} cmake --install . - install -Dm644 ${srcdir}/${_realname}-${pkgver}/License.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE + + install -Dm644 ${srcdir}/${_realname}-${pkgver}/License.txt \ + ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) for _f in $(find "${pkgdir}${MINGW_PREFIX}"/lib/cmake -type f); do