From 8b789bde8660954260a9ff19400524527dfa9817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=BCtzel?= Date: Sun, 20 Feb 2022 22:10:48 +0100 Subject: [PATCH] moab: enable clang --- mingw-w64-moab/0001-no-fortran.patch | 25 ++++++++++++++ mingw-w64-moab/PKGBUILD | 49 ++++++++++++++++++++-------- 2 files changed, 61 insertions(+), 13 deletions(-) create mode 100644 mingw-w64-moab/0001-no-fortran.patch diff --git a/mingw-w64-moab/0001-no-fortran.patch b/mingw-w64-moab/0001-no-fortran.patch new file mode 100644 index 0000000000..b3a3bef38b --- /dev/null +++ b/mingw-w64-moab/0001-no-fortran.patch @@ -0,0 +1,25 @@ +diff -urN a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2021-11-12 07:17:17.000000000 +0100 ++++ b/CMakeLists.txt 2022-02-20 21:11:47.292208900 +0100 +@@ -245,8 +245,6 @@ + + if ( LAPACK_FOUND ) + +- SET (ENABLE_FORTRAN ON) +- + # Eigen3 is optional if LAPACK has been found + FIND_PACKAGE(Eigen3 OPTIONAL_COMPONENTS) + + +diff -urN src/moab/Matrix3.hpp.orig src/moab/Matrix3.hpp +--- a/src/moab/Matrix3.hpp 2021-11-12 07:17:18.000000000 +0100 ++++ b/src/moab/Matrix3.hpp 2022-02-20 21:32:02.346125100 +0100 +@@ -71,7 +71,7 @@ + + // We will rely on LAPACK directly + +-#ifdef WIN32 ++#ifdef _MSC_VER + + // Should use second form below for windows but + // needed to do this to make it work. diff --git a/mingw-w64-moab/PKGBUILD b/mingw-w64-moab/PKGBUILD index 0b076f95c4..a7b0f5c4af 100644 --- a/mingw-w64-moab/PKGBUILD +++ b/mingw-w64-moab/PKGBUILD @@ -4,24 +4,46 @@ _realname=moab pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=5.3.1 -pkgrel=1 +pkgrel=2 pkgdesc='The Mesh-Oriented datABase MOAB is a component for representing and evaluating mesh data (mingw-w64)' arch=('any') -mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') -depends=("${MINGW_PACKAGE_PREFIX}-msmpi" - "${MINGW_PACKAGE_PREFIX}-eigen3") -makedepends=("${MINGW_PACKAGE_PREFIX}-openblas" - "${MINGW_PACKAGE_PREFIX}-ninja" +mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32') +depends=("${MINGW_PACKAGE_PREFIX}-eigen3" + $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] && echo "${MINGW_PACKAGE_PREFIX}-f2cblaslapack") + "${MINGW_PACKAGE_PREFIX}-msmpi" + $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-openblas")) +makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-cmake" - "${MINGW_PACKAGE_PREFIX}-cc") -license=('LGPL 2.1') + "${MINGW_PACKAGE_PREFIX}-ninja") +license=('spdx:LGPL-3.0+') url='https://sigma.mcs.anl.gov/moab-library/' -source=(https://ftp.mcs.anl.gov/pub/fathom/${_realname}-${pkgver}.tar.gz) -sha256sums=('2404FAB2D84F87BE72B57CFEF5EA237BFA444AACA059E66A158F22134956FE54') +source=(https://ftp.mcs.anl.gov/pub/fathom/${_realname}-${pkgver}.tar.gz + "0001-no-fortran.patch") +sha256sums=('2404fab2d84f87be72b57cfef5ea237bfa444aaca059e66a158f22134956fe54' + '2669507edebea057297ef7fb4e4ced4e5bc2ac350da78b24ac51a7bcb3559a94') + +# Helper macros to help make tasks easier # +apply_patch_with_msg() { + for _patch in "$@" + do + msg2 "Applying $_patch" + patch -Nbp1 -i "${srcdir}/$_patch" + done +} + +prepare() { + cd ${srcdir}/${_realname}-${pkgver} + apply_patch_with_msg \ + 0001-no-fortran.patch +} build() { - [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" - mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MSYSTEM}" ]] && rm -rf "${srcdir}/build-${MSYSTEM}" + mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" + + if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then + _extra_cmake_flags+=" -DENABLE_FORTRAN=OFF" + fi MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ @@ -31,13 +53,14 @@ build() { -DBUILD_SHARED_LIBS=OFF \ -DENABLE_MPI=ON \ -DENABLE_TESTING=ON \ + ${_extra_cmake_flags} \ ../${_realname}-${pkgver} ${MINGW_PREFIX}/bin/cmake --build . } package() { - cd "${srcdir}/build-${MINGW_CHOST}" + cd "${srcdir}/build-${MSYSTEM}" DESTDIR=${pkgdir} cmake --build . --target install install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE }