From c2b2c37cd0dc6f31b2e89cd8c1ad43be4d2b715e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= Date: Sat, 25 Feb 2023 12:37:48 +0100 Subject: [PATCH] hdf4: support fortran on clang64 and clangarm64 --- mingw-w64-hdf4/PKGBUILD | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/mingw-w64-hdf4/PKGBUILD b/mingw-w64-hdf4/PKGBUILD index a8179704c3..86170ba122 100644 --- a/mingw-w64-hdf4/PKGBUILD +++ b/mingw-w64-hdf4/PKGBUILD @@ -4,7 +4,7 @@ _realname=hdf pkgbase=mingw-w64-${_realname}4 pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}4") pkgver=4.2.15 -pkgrel=6 +pkgrel=7 pkgdesc="Legacy HDF4 driver for GDAL (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64') @@ -25,12 +25,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-zlib" $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran") ) -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" +makedepends=("${MINGW_PACKAGE_PREFIX}-cc" + "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" - "${MINGW_PACKAGE_PREFIX}-cc" - $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-fortran") + $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* && ${MSYSTEM} != *64 ]] || echo \ + "${MINGW_PACKAGE_PREFIX}-fc") ) -options=('strip' 'staticlibs') prepare() { cd ${srcdir}/${_realname}-${pkgver} @@ -44,22 +44,33 @@ prepare() { } build() { - [[ -d "${srcdir}"/build-${MSYSTEM} ]] && rm -rf "${srcdir}"/build-${MSYSTEM} mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM} local -a _enable_fortran - if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then + if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* || ${MSYSTEM} == *64 ]]; then _enable_fortran="ON" - export FFLAGS="-fallow-argument-mismatch" else _enable_fortran="OFF" fi + if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then + export FFLAGS="-fallow-argument-mismatch" + else + CFLAGS+=" -Wno-incompatible-function-pointer-types -Wno-implicit-function-declaration" + fi + + declare -a _extra_config + if check_option "debug" "n"; then + _extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + _extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ - cmake \ + ${MINGW_PREFIX}/bin/cmake \ -G"Ninja" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE="Release" \ + "${_extra_config[@]}" \ -DBUILD_SHARED_LIBS=ON \ -DHDF4_BUILD_TOOLS=OFF \ -DHDF4_BUILD_UTILS=ON \ @@ -70,13 +81,13 @@ build() { -DHDF4_INSTALL_DATA_DIR="share/docs/hdf4" \ ../${_realname}-${pkgver} - cmake --build . + ${MINGW_PREFIX}/bin/cmake --build . } package() { cd "${srcdir}"/build-${MSYSTEM} - DESTDIR="${pkgdir}" cmake --install . + DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install . local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/hdf4/*.cmake; do