Date: Monday, September 24, 2018 @ 15:51:48 Author: archange Revision: 384632
Work around autotools and CMake differences Modified: hdf5/trunk/PKGBUILD ----------+ PKGBUILD | 53 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 13 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-09-24 15:24:26 UTC (rev 384631) +++ PKGBUILD 2018-09-24 15:51:48 UTC (rev 384632) @@ -1,3 +1,4 @@ +# $Id$ # Maintainer: Ronald van Haren <ronald.archlinux.org> # Maintainer: Bruno Pagani <[email protected]> # Contributor: Stefan Husmann <[email protected]> @@ -6,7 +7,7 @@ pkgname=hdf5 pkgver=1.10.3 -pkgrel=1 +pkgrel=2 pkgdesc="General purpose library and file format for storing scientific data" arch=('x86_64') url="https://www.hdfgroup.org/hdf5" @@ -21,12 +22,9 @@ md5sums=('56c5039103c51a40e493b43c504ce982') sha256sums=('c65cdcce4724a57fd3f8da9f0d109b497be30092acb9fac634d1291190d905a9') -prepare() { - mkdir -p build -} - build() { - cd build + # Crazy workaround: run CMake to generate pkg-config file + mkdir -p build && cd build cmake ../${pkgname}-${pkgver/_/-} \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_SHARED_LIBS=ON \ @@ -37,20 +35,49 @@ -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ -DHDF5_ENABLE_SZIP_SUPPORT=ON \ -DHDF5_ENABLE_SZIP_ENCODING=ON - cmake --build . --config Release + # But don’t build with it, it’s quite broken + cd ../${pkgname}-${pkgver/_/-} + ./configure \ + --prefix=/usr \ + --docdir=/usr/share/doc/hdf5/ \ + --enable-static \ + --disable-sharedlib-rpath \ + --enable-build-mode=production \ + --enable-hl \ + --enable-cxx \ + --enable-fortran \ + --with-pic \ + --with-zlib \ + --with-szlib + make } check() { - cd build - ctest . -C Release + cd ${pkgname}-${pkgver/_/-} + # Without this, checks are failing with messages like “error while loading shared libraries: libhdf5.so.101: cannot open shared object file: No such file or directory” + export LD_LIBRARY_PATH="${srcdir}"/${pkgname}-${pkgver/_/-}/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/c++/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/fortran/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/hl/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/hl/c++/src/.libs/ + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${srcdir}"/${pkgname}-${pkgver/_/-}/hl/fortran/src/.libs/ + make check } package() { - cd build + cd ${pkgname}-${pkgver/_/-} make DESTDIR="${pkgdir}" install - install -d "${pkgdir}"/usr/share/licenses/${pkgname} - mv "${pkgdir}"/usr/share/COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/ - rm "${pkgdir}"/usr/share/{RELEASE,USING_HDF5_CMake}.txt + # Remove leftover test files + rm "${pkgdir}"/usr/include/tst{ds,image,lite,table}{,_tests}.mod + + # Move examples to a proper place + install -dm755 "${pkgdir}"/usr/share/doc/${pkgname} + mv "${pkgdir}"/usr/share/{hdf5_examples,doc/${pkgname}/examples} + + install -Dm644 COPYING -t "${pkgdir}"/usr/share/licenses/${pkgname} + + # Install pkg-config files from CMake tree + install -Dm644 ../build/CMakeFiles/hdf5{,_hl}{,_cpp}-${pkgver}.pc -t "${pkgdir}"/usr/lib/pkgconfig/ }
