hdf5: Fix building and installing.

This commit is contained in:
Alexpux
2014-04-30 12:56:21 +04:00
parent 02d66dab45
commit aa82d85aea
5 changed files with 99 additions and 48 deletions

View File

@@ -1,3 +1,4 @@
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Xin Sun <sun.simpson@gmail.com>
_realname=hdf5
@@ -10,22 +11,39 @@ arch=('any')
url="http://www.hdfgroup.org/HDF5/"
source=(
"http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-${pkgver}/src/hdf5-${pkgver}.tar.bz2"
"hdf5-ws2_32.patch"
"hdf5-link-ws2_32-mingw.patch"
"hdf5-default-import-suffix.patch"
"hdf5-install.patch"
"hdf5-fix-install-docs.patch"
)
md5sums=(
"03ad766d225f5e872eb3e5ce95524a08"
"c1aa1d0306fdefe435f35bc3dc7f860b"
"50e4241f7c977e180da866cd43e571c3"
)
depends=("${_mingw_suff}-gcc-libs" "${_mingw_suff}-zlib" "${_mingw_suff}-szip")
makedepends=("${_mingw_suff}-gcc" "${_mingw_suff}-cmake" "patch")
md5sums=('03ad766d225f5e872eb3e5ce95524a08'
'c2eae0fa98e1b0f15c70d6ac65f8f7fb'
'ff88f8dac682af32181ca801f25b12aa'
'66314208fdeb6e6456ab003e1ae837e5'
'f41dd4f98034fbdd3e15e0800ce79407')
depends=("${_mingw_suff}-gcc-libs" "${_mingw_suff}-gcc-libgfortran" "${_mingw_suff}-zlib" "${_mingw_suff}-szip")
makedepends=("${_mingw_suff}-gcc" "${_mingw_suff}-gcc-fortran" "${_mingw_suff}-cmake" "patch")
options=('staticlibs' 'strip')
prepare() {
cd ${srcdir}/${_realname}-${pkgver}
patch -p0 -i ${srcdir}/hdf5-ws2_32.patch
patch -p0 -i ${srcdir}/hdf5-install.patch
patch -p1 -i ${srcdir}/hdf5-link-ws2_32-mingw.patch
patch -p1 -i ${srcdir}/hdf5-install.patch
patch -p1 -i ${srcdir}/hdf5-default-import-suffix.patch
patch -p1 -i ${srcdir}/hdf5-fix-install-docs.patch
# rename X.dll to X-0.dll
echo "IF (BUILD_SHARED_LIBS)" >> CMakeLists.txt
echo "SET_TARGET_PROPERTIES (\${HDF5_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt
echo "SET_TARGET_PROPERTIES (\${HDF5_HL_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt
echo "SET_TARGET_PROPERTIES (\${HDF5_CPP_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt
echo "SET_TARGET_PROPERTIES (\${HDF5_HL_CPP_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt
echo "SET_TARGET_PROPERTIES (\${HDF5_TOOLS_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt
echo "SET_TARGET_PROPERTIES (\${HDF5_F90_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt
echo "SET_TARGET_PROPERTIES (\${HDF5_F90_C_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt
echo "SET_TARGET_PROPERTIES (\${HDF5_HL_F90_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt
echo "SET_TARGET_PROPERTIES (\${HDF5_HL_F90_C_LIB_TARGET} PROPERTIES SUFFIX -0.dll)">> CMakeLists.txt
echo "ENDIF ()" >> CMakeLists.txt
}
build() {
@@ -39,7 +57,8 @@ build() {
-DCMAKE_SKIP_RPATH=ON \
-DHDF5_BUILD_HL_LIB=ON \
-DHDF5_BUILD_CPP_LIB=ON \
-DHDF5_BUILD_FORTRAN=OFF \
-DHDF5_BUILD_FORTRAN=ON \
-DHDF5_BUILD_TOOLS=ON \
-DHDF5_ENABLE_DEPRECATED_SYMBOLS=OFF \
-DHDF5_ENABLE_SZIP_SUPPORT=ON \
-DHDF5_ENABLE_Z_LIB_SUPPORT=ON \
@@ -50,19 +69,4 @@ build() {
package() {
cd "${srcdir}/build-${MINGW_CHOST}"
make -j1 install
# clear README, licenses, etc. or shall we move them to another place?
for f in ${pkgdir}${MINGW_PREFIX}/share/*
do
[[ -f $f ]] && rm -f $f
done
mv ${pkgdir}${MINGW_PREFIX}/lib/hdf5.lib ${pkgdir}${MINGW_PREFIX}/lib/libhdf5.dll.a
mv ${pkgdir}${MINGW_PREFIX}/lib/hdf5_hl.lib ${pkgdir}${MINGW_PREFIX}/lib/libhdf5_hl.dll.a
mv ${pkgdir}${MINGW_PREFIX}/lib/hdf5_cpp.lib ${pkgdir}${MINGW_PREFIX}/lib/libhdf5_cpp.dll.a
mv ${pkgdir}${MINGW_PREFIX}/lib/hdf5_hl_cpp.lib ${pkgdir}${MINGW_PREFIX}/lib/libhdf5_hl_cpp.dll.a
sed -s "s|hdf5.lib|libhdf5.dll.a|g" -i ${pkgdir}${MINGW_PREFIX}/share/cmake/hdf5/hdf5-targets-release.cmake
sed -s "s|hdf5_cpp.lib|libhdf5_cpp.dll.a|g" -i ${pkgdir}${MINGW_PREFIX}/share/cmake/hdf5/hdf5-targets-release.cmake
sed -s "s|hdf5_hl.lib|libhdf5_hl.dll.a|g" -i ${pkgdir}${MINGW_PREFIX}/share/cmake/hdf5/hdf5-targets-release.cmake
sed -s "s|hdf5_hl_cpp.lib|libhdf5_hl_cpp.dll.a|g" -i ${pkgdir}${MINGW_PREFIX}/share/cmake/hdf5/hdf5-targets-release.cmake
}

View File

@@ -0,0 +1,20 @@
diff -ur hdf5-1.8.12.orig/config/cmake/HDFMacros.cmake hdf5-1.8.12/config/cmake/HDFMacros.cmake
--- hdf5-1.8.12.orig/config/cmake/HDFMacros.cmake 2013-11-22 22:35:38.454236491 +0100
+++ hdf5-1.8.12/config/cmake/HDFMacros.cmake 2013-11-22 22:37:27.717130034 +0100
@@ -108,16 +108,6 @@
RELWITHDEBINFO_OUTPUT_NAME ${LIB_RELEASE_NAME}
)
- #----- 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 (MINGW AND ${libtype} MATCHES "SHARED")
-
ENDMACRO (HDF_SET_LIB_OPTIONS)
#-------------------------------------------------------------------------------

View File

@@ -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 @@
FILES
${HDF5_SOURCE_DIR}/ACKNOWLEDGMENTS
${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")

View File

@@ -0,0 +1,29 @@
diff -ur hdf5-1.8.12.orig/src/CMakeLists.txt hdf5-1.8.12/src/CMakeLists.txt
--- hdf5-1.8.12.orig/src/CMakeLists.txt 2013-11-22 22:01:31.874461256 +0100
+++ hdf5-1.8.12/src/CMakeLists.txt 2013-11-22 22:06:19.702407529 +0100
@@ -615,9 +615,9 @@
#-----------------------------------------------------------------------------
ADD_EXECUTABLE (H5detect ${HDF5_SRC_DIR}/H5detect.c)
TARGET_C_PROPERTIES (H5detect " " " ")
-IF (MSVC)
- TARGET_LINK_LIBRARIES (H5detect "ws2_32.lib")
-ENDIF (MSVC)
+IF (WIN32)
+ TARGET_LINK_LIBRARIES (H5detect ws2_32)
+ENDIF ()
SET (CMD $<TARGET_FILE:H5detect>)
ADD_CUSTOM_COMMAND (
@@ -629,9 +629,9 @@
ADD_EXECUTABLE (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c)
TARGET_C_PROPERTIES (H5make_libsettings " " " ")
-IF (MSVC)
- TARGET_LINK_LIBRARIES (H5make_libsettings "ws2_32.lib")
-ENDIF (MSVC)
+IF (WIN32)
+ TARGET_LINK_LIBRARIES (H5make_libsettings ws2_32)
+ENDIF ()
SET (CMD $<TARGET_FILE:H5make_libsettings>)
ADD_CUSTOM_COMMAND (

View File

@@ -1,22 +0,0 @@
--- src/CMakeLists.txt.orig 2013-11-21 23:13:52.000000000 +0800
+++ src/CMakeLists.txt 2014-04-29 17:27:57.526688800 +0800
@@ -618,6 +618,9 @@
IF (MSVC)
TARGET_LINK_LIBRARIES (H5detect "ws2_32.lib")
ENDIF (MSVC)
+IF (MINGW)
+ TARGET_LINK_LIBRARIES (H5detect "-lws2_32")
+ENDIF (MINGW)
SET (CMD $<TARGET_FILE:H5detect>)
ADD_CUSTOM_COMMAND (
@@ -632,6 +635,9 @@
IF (MSVC)
TARGET_LINK_LIBRARIES (H5make_libsettings "ws2_32.lib")
ENDIF (MSVC)
+IF (MINGW)
+ TARGET_LINK_LIBRARIES (H5make_libsettings "-lws2_32")
+ENDIF (MINGW)
SET (CMD $<TARGET_FILE:H5make_libsettings>)
ADD_CUSTOM_COMMAND (