Skip to content
This repository has been archived by the owner on Oct 26, 2023. It is now read-only.

add hdf5 #15

Merged
merged 1 commit into from Oct 4, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
93 changes: 93 additions & 0 deletions mingw-w64-hdf5/PKGBUILD
@@ -0,0 +1,93 @@
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Xin Sun <sun.simpson@gmail.com>

_realname=hdf5
pkgbase="mingw-w64-${_realname}"
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
_ver=1.10.5
patch=
pkgver=${_ver}${patch//-/.}
pkgrel=9002
pkgdesc="General purpose library and file format for storing scientific data (mingw-w64)"
arch=('any')
license=("custom")
url="https://www.hdfgroup.org/HDF5/"
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-fix-install-docs.patch"
"hdf5-proper-library-names-mingw.patch"
"hdf5-fix-find-szip.patch"
"hdf5-cmake-size-type-checks.patch"
"utf8-windows-filenames.patch")
sha256sums=('68d6ea8843d2a106ec6a7828564c1689c7a85714a35d8efafa2fee20ca366f44'
'81bd20b39ff5064cb454b7763b6cb9d3a2443c1fe0625f2d7819dce97b0b628d'
'72a4c3ff11b0811e2462252ddc7f14428c0241c71b3403408dbc0f93a21271c9'
'828e431c8982846c2c67763368b5ba3bf6a27cac7ed6bd8a73ed8bcbf3fba6a3'
'905c1ae3a28ace1557584bbdbd2e50b721fda0ccc9e816e77834655053d4410e'
'2efd623ea7b2c5c81dd8ae4aa37f480f475c0774b333a39834e4cb1fb70d8a24'
'ae5c8f45fbdd00e3f3e37de24dd34850fc48e736e801086a42eeda5a590bac1c')
depends=("${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
"${MINGW_PACKAGE_PREFIX}-gcc-fortran"
"${MINGW_PACKAGE_PREFIX}-cmake"
"patch")
options=('staticlibs' 'strip')

groups=("rtools-${_realname}")

prepare() {
cd "${srcdir}/${_realname}-${_ver}${patch}"
patch -p1 -i "${srcdir}/hdf5-default-import-suffix.patch"
patch -p1 -i "${srcdir}/hdf5-fix-install-docs.patch"
patch -p1 -i "${srcdir}/hdf5-proper-library-names-mingw.patch"
patch -p1 -i "${srcdir}/hdf5-fix-find-szip.patch"
patch -p1 -i "${srcdir}/hdf5-cmake-size-type-checks.patch"
patch -p1 -i "${srcdir}/utf8-windows-filenames.patch"
}

build() {
[[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST}


export CC="/C/Rtools${MINGW_PREFIX/mingw/mingw_}/bin/gcc"
export CXX="/C/Rtools${MINGW_PREFIX/mingw/mingw_}/bin/g++"
export PATH="/C/Rtools${MINGW_PREFIX/mingw/mingw_}/bin:$PATH"
export CPPFLAGS="-I${MINGW_PREFIX}/include"
export LIBS="-L${MINGW_PREFIX}/libs"


MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake.exe \
-Wno-dev \
-G"MSYS Makefiles" \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTING=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SKIP_RPATH=ON \
-DHDF5_BUILD_HL_LIB=ON \
-DHDF5_BUILD_CPP_LIB=ON \
-DHDF5_BUILD_FORTRAN=ON \
-DHDF5_BUILD_TOOLS=ON \
-DHDF5_ENABLE_DEPRECATED_SYMBOLS=ON \
-DHDF5_ENABLE_SZIP_SUPPORT=OFF \
-DHDF5_ENABLE_Z_LIB_SUPPORT=ON \
-DHDF5_INSTALL_CMAKE_DIR="lib/cmake" \
-DHDF5_INSTALL_DATA_DIR="share" \
../${_realname}-${_ver}${patch}

make
}

package() {
mkdir ${srcdir}/build-${MINGW_CHOST}/bin/static/Release/
cp ${srcdir}/build-${MINGW_CHOST}/bin/static/*.mod ${srcdir}/build-${MINGW_CHOST}/bin/static/Release
cd "${srcdir}/build-${MINGW_CHOST}"
make DESTDIR=${pkgdir} install

local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/hdf5/*.cmake; do
sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f}
done
}
30 changes: 30 additions & 0 deletions mingw-w64-hdf5/hdf5-cmake-size-type-checks.patch
@@ -0,0 +1,30 @@
diff -Naur hdf5-1.8.19.org/config/cmake_ext_mod/ConfigureChecks.cmake hdf5-1.8.19/config/cmake_ext_mod/ConfigureChecks.cmake
--- hdf5-1.8.19.org/config/cmake_ext_mod/ConfigureChecks.cmake 2017-06-15 17:47:13.000000000 +0200
+++ hdf5-1.8.19/config/cmake_ext_mod/ConfigureChecks.cmake 2017-11-06 23:06:21.235526700 +0100
@@ -405,7 +405,7 @@
if (NOT ${HDF_PREFIX}_SIZEOF_SSIZE_T)
set (${HDF_PREFIX}_SIZEOF_SSIZE_T 0)
endif ()
- if (NOT WINDOWS)
+ if (NOT MSVC)
HDF_CHECK_TYPE_SIZE (ptrdiff_t ${HDF_PREFIX}_SIZEOF_PTRDIFF_T)
endif ()
endif ()
@@ -429,7 +429,7 @@
HDF_CHECK_TYPE_SIZE (_Bool ${HDF_PREFIX}_SIZEOF_BOOL)
endif ()

-if (NOT WINDOWS)
+if (NOT MSVC)
#-----------------------------------------------------------------------------
# Check if the dev_t type is a scalar type
#-----------------------------------------------------------------------------
@@ -561,7 +561,7 @@
#-----------------------------------------------------------------------------
# Check a bunch of other functions
#-----------------------------------------------------------------------------
-if (NOT WINDOWS)
+if (NOT MSVC)
foreach (test
HAVE_ATTRIBUTE
HAVE_C99_FUNC
18 changes: 18 additions & 0 deletions mingw-w64-hdf5/hdf5-default-import-suffix.patch
@@ -0,0 +1,18 @@
--- hdf5-1.8.19.orig/config/cmake_ext_mod/HDFMacros.cmake 2017-07-28 16:47:51.434642000 +0200
+++ hdf5-1.8.19/config/cmake_ext_mod/HDFMacros.cmake 2017-07-28 16:55:55.588824300 +0200
@@ -126,15 +126,6 @@
endif ()
endif ()

- #----- Use MSVC Naming conventions for Shared Libraries
- if (MINGW AND ${libtype} MATCHES "SHARED")
- set_target_properties (${libtarget}
- PROPERTIES
- IMPORT_SUFFIX ".lib"
- IMPORT_PREFIX ""
- PREFIX ""
- )
- endif ()
endmacro ()

#-------------------------------------------------------------------------------
43 changes: 43 additions & 0 deletions mingw-w64-hdf5/hdf5-fix-find-szip.patch
@@ -0,0 +1,43 @@
--- hdf5-1.8.19.orig/config/cmake_ext_mod/FindSZIP.cmake 2017-07-28 17:00:41.666213900 +0200
+++ hdf5-1.8.19/config/cmake_ext_mod/FindSZIP.cmake 2017-07-28 17:01:38.212923600 +0200
@@ -100,7 +100,7 @@
NO_DEFAULT_PATH
)

-if (WIN32)
+if (MSVC)
set (SZIP_SEARCH_DEBUG_NAMES "sz_d;libsz_d")
set (SZIP_SEARCH_RELEASE_NAMES "sz;libsz;libszip")
else ()
--- hdf5-1.8.21/CMakeFilters.cmake.orig 2018-07-31 13:15:05.730704200 +0300
+++ hdf5-1.8.21/CMakeFilters.cmake 2018-07-31 13:21:23.985568600 +0300
@@ -44,10 +44,10 @@
find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
if (NOT ZLIB_FOUND)
find_package (ZLIB) # Legacy find
- if (ZLIB_FOUND)
- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES})
- set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${ZLIB_LIBRARIES})
- endif ()
+ endif ()
+ if (ZLIB_FOUND)
+ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES})
+ set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${ZLIB_LIBRARIES})
endif ()
endif ()
if (ZLIB_FOUND)
@@ -95,10 +95,10 @@
find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
if (NOT SZIP_FOUND)
find_package (SZIP) # Legacy find
- if (SZIP_FOUND)
- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES})
- set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${SZIP_LIBRARIES})
- endif ()
+ endif ()
+ if (SZIP_FOUND)
+ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES})
+ set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${SZIP_LIBRARIES})
endif ()
endif ()
if (SZIP_FOUND)
20 changes: 20 additions & 0 deletions mingw-w64-hdf5/hdf5-fix-install-docs.patch
@@ -0,0 +1,20 @@
--- hdf5-1.8.12/CMakeInstallation.cmake.orig 2013-11-21 19:14:04.000000000 +0400
+++ hdf5-1.8.12/CMakeInstallation.cmake 2014-04-30 12:23:14.248200000 +0400
@@ -144,7 +144,7 @@
install (
FILES
${HDF5_SOURCE_DIR}/COPYING
- DESTINATION ${HDF5_INSTALL_DATA_DIR}
+ DESTINATION ${HDF5_INSTALL_DATA_DIR}/doc/hdf5
COMPONENT hdfdocuments
)
if (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs")
@@ -188,7 +188,7 @@
endif (HDF5_PACK_INSTALL_DOCS)
install (
FILES ${release_files}
- DESTINATION ${HDF5_INSTALL_DATA_DIR}
+ DESTINATION ${HDF5_INSTALL_DATA_DIR}/doc/hdf5
COMPONENT hdfdocuments
)
endif (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs")
37 changes: 37 additions & 0 deletions mingw-w64-hdf5/hdf5-proper-library-names-mingw.patch
@@ -0,0 +1,37 @@
--- hdf5-1.8.19.orig/config/cmake_ext_mod/HDFMacros.cmake 2017-07-28 16:41:41.840936100 +0200
+++ hdf5-1.8.19/config/cmake_ext_mod/HDFMacros.cmake 2017-07-28 16:45:12.960710400 +0200
@@ -88,7 +88,10 @@

#-------------------------------------------------------------------------------
macro (HDF_SET_LIB_OPTIONS libtarget libname libtype)
- if (WIN32)
+ if (MINGW)
+ string(REGEX REPLACE "^lib([A-za-z]+)" "\\1" libname ${libname})
+ endif ()
+ if (MSVC)
set (LIB_DEBUG_SUFFIX "_D")
else ()
set (LIB_DEBUG_SUFFIX "_debug")
@@ -97,7 +100,7 @@
set (LIB_DEBUG_NAME "${libname}_debug")
endif ()
else ()
- if (WIN32)
+ if (MSVC)
set (LIB_RELEASE_NAME "lib${libname}")
set (LIB_DEBUG_NAME "lib${libname}_D")
else ()
@@ -116,6 +116,13 @@
OUTPUT_NAME_RELWITHDEBINFO
${LIB_RELEASE_NAME}
)
+
+ if (MINGW)
+ set_target_properties (${libtarget} PROPERTIES OUTPUT_NAME ${libname} ARCHIVE_OUTPUT_NAME ${libname})
+ if (${libtype} MATCHES "SHARED")
+ set_target_properties (${libtarget} PROPERTIES RUNTIME_OUTPUT_NAME ${libname}-0)
+ endif ()
+ endif ()
if (${libtype} MATCHES "STATIC")
if (WIN32)
set_target_properties (${libtarget}