Fix building HDF on clang subsystems

- Disable Fortran
- Enable clang32
This commit is contained in:
Mehdi Chinoune
2021-09-11 05:29:49 +01:00
parent b06e60c715
commit 717fe5ddc0
3 changed files with 53 additions and 34 deletions

View File

@@ -7,7 +7,7 @@ pkgver=4.2.15
pkgrel=3
pkgdesc="Legacy HDF4 driver for GDAL (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
url='https://support.hdfgroup.org/products/hdf4/'
license=('GPL2')
source=(#"https://support.hdfgroup.org/ftp/HDF/HDF_Current/src/${_realname}-${pkgver}.tar.gz"
@@ -18,11 +18,13 @@ sha256sums=('bde035ef5a1cd5fdbd0a7f1fa5c17e98bbd599300189ac4d234f16e9bb7bcb12'
'f842fb5efe99b8ad3e4ecb7683af106c4891d994abb44adf8fd34a54cb729a38'
'0362725aa964bff6318d37740481e462d77c2d1c39cccc86690773de3d69e94c')
depends=("${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
"${MINGW_PACKAGE_PREFIX}-gcc-libgfortran"
"${MINGW_PACKAGE_PREFIX}-zlib")
"${MINGW_PACKAGE_PREFIX}-zlib"
$([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran")
)
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-gcc-fortran")
$([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-fortran")
)
options=('strip' 'staticlibs')
prepare() {
@@ -32,34 +34,39 @@ prepare() {
}
build() {
[[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
[[ -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
_enable_fortran="ON"
export FFLAGS="-fallow-argument-mismatch"
else
_enable_fortran="OFF"
fi
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake.exe \
cmake \
-G"Ninja" \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DCMAKE_BUILD_TYPE="Release" \
-DBUILD_SHARED_LIBS=ON \
-DHDF4_BUILD_TOOLS=OFF \
-DHDF4_BUILD_UTILS=ON \
-DHDF4_BUILD_FORTRAN=ON \
-DHDF4_BUILD_FORTRAN=${_enable_fortran} \
-DHDF4_NO_PACKAGES=ON \
-DHDF4_ENABLE_NETCDF=OFF \
-DHDF4_INSTALL_CMAKE_DIR="lib/cmake" \
-DHDF4_INSTALL_DATA_DIR="share/docs/hdf4" \
../${_realname}-${pkgver}
${MINGW_PREFIX}/bin/cmake.exe --build ./
cmake --build .
}
package() {
cd "${srcdir}"/build-${CARCH}
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake.exe --build ./ --target install
cd "${srcdir}"/build-${MSYSTEM}
DESTDIR="${pkgdir}" cmake --install .
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/hdf4/*.cmake; do

View File

@@ -10,9 +10,19 @@ pkgver=${_ver}${patch//-/.}
pkgrel=4
pkgdesc="General purpose library and file format for storing scientific data (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
license=("custom")
url="https://www.hdfgroup.org/HDF5/"
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-libaec"
"${MINGW_PACKAGE_PREFIX}-zlib"
$([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran")
)
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja"
$([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-fortran")
)
options=('staticlibs' 'strip')
source=("https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${_ver%.*}/hdf5-${_ver}${patch}/src/hdf5-${_ver}${patch}.tar.bz2"
"hdf5-default-import-suffix.patch"
"hdf5-proper-library-names-mingw.patch"
@@ -25,16 +35,6 @@ sha256sums=('97906268640a6e9ce0cde703d5a71c9ac3092eded729591279bf2e3ca9765f61'
'2f4438d780c897e06481231688a61251738ee84550dde7e0153a3d09b9ede1f7'
'92322234b82fb47ee1b2a9998955f3e5d944fd0290a7b0016b6c037671571a1e'
'76995487009646600c8953e7c568d9050f084924f9a3a3ad7c784d1002d2c5fc')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-gcc-libgfortran"
"${MINGW_PACKAGE_PREFIX}-libaec"
"${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
"${MINGW_PACKAGE_PREFIX}-gcc-fortran"
"${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja"
"patch")
options=('staticlibs' 'strip')
prepare() {
cd "${srcdir}/${_realname}-${_ver}${patch}"
@@ -46,11 +46,19 @@ prepare() {
}
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}
local -a _enable_fortran
if [[ "${MINGW_PACKAGE_PREFIX}" == *-clang-* ]]; then
_enable_fortran="OFF"
else
_enable_fortran="ON"
fi
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
SZIP_INSTALL=${MINGW_PREFIX} \
${MINGW_PREFIX}/bin/cmake \
cmake \
-Wno-dev \
-GNinja \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
@@ -60,7 +68,7 @@ build() {
-DCMAKE_SKIP_RPATH=ON \
-DHDF5_BUILD_HL_LIB=ON \
-DHDF5_BUILD_CPP_LIB=ON \
-DHDF5_BUILD_FORTRAN=ON \
-DHDF5_BUILD_FORTRAN=${_enable_fortran} \
-DHDF5_BUILD_TOOLS=ON \
-DHDF5_ENABLE_DEPRECATED_SYMBOLS=ON \
-DHDF5_ENABLE_SZIP_SUPPORT=ON \
@@ -69,16 +77,20 @@ build() {
-DHDF5_INSTALL_DATA_DIR="share/doc/hdf5" \
../${_realname}-${_ver}${patch}
${MINGW_PREFIX}/bin/cmake --build .
cmake --build .
}
package() {
mkdir -p ${srcdir}/build-${MINGW_CHOST}/bin/static/Release/
mkdir -p ${srcdir}/build-${MINGW_CHOST}/bin/shared/Release/
cp ${srcdir}/build-${MINGW_CHOST}/bin/static/*.mod ${srcdir}/build-${MINGW_CHOST}/bin/static/Release
cp ${srcdir}/build-${MINGW_CHOST}/bin/shared/*.mod ${srcdir}/build-${MINGW_CHOST}/bin/shared/Release
cd "${srcdir}/build-${MINGW_CHOST}"
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build . --target install
cd "${srcdir}/build-${MSYSTEM}"
if [[ "${MINGW_PACKAGE_PREFIX}" != *-clang-* ]]; then
mkdir -p ${srcdir}/build-${MSYSTEM}/bin/static/Release/
mkdir -p ${srcdir}/build-${MSYSTEM}/bin/shared/Release/
cp ${srcdir}/build-${MSYSTEM}/bin/static/*.mod ${srcdir}/build-${MSYSTEM}/bin/static/Release
cp ${srcdir}/build-${MSYSTEM}/bin/shared/*.mod ${srcdir}/build-${MSYSTEM}/bin/shared/Release
fi
DESTDIR="${pkgdir}" cmake --install .
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/hdf5/*.cmake; do

View File

@@ -7,7 +7,7 @@ pkgver=4.7.4
pkgrel=2
pkgdesc="Interface for scientific data access to large binary data (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
license=('custom')
url="https://www.unidata.ucar.edu/software/netcdf/"
depends=("${MINGW_PACKAGE_PREFIX}-curl"