Releases: geospace-code/h5fortran
add HDF5 softlink creation
also, make H5pubconf.h detection and action more robust--if we can't detect the HDF5 configuration, it's better to build our own rather than emit huge amount of link-time errors.
Cmake / CI template
v3.4.2 cmake policy template
enhanced FindHDF5 and build_hdf5.py
- build_hdf5.py now works much better, building in paralllel across more compilers and operating systems, including MacOS, Linux, Windows with GCC or Intel compilers
- FindHDF5.cmake finds optional f90 stubs that some HDF5 implementations require
- Zlib is now optional--but naturally h5fortran can't read/write compressed files without zlib
New FindHDF5.cmake
Since CMake FindHDF5.cmake targets different use cases than are important for h5fortran, we created from scratch a new FindHDF5.cmake that addresses key needs including
- don't use compiler wrapper, pkg-config as these are too often broken
- test that each language links before declaring HDF5_FOUND
This allows removing numerous hacks and makes finding a working HDF5 much more robust.
Please let us know if this is not finding your expected HDF5 library.
more robust compiler finding
use templateable approach to ensuring compatible compilers are detected, especially on MacOS.
This helps avoid need for users to manually specify compiler (unless desired).
zlib: use externalProjectAddStep instead of hack
Use ExternalProject_Add_Step instead of hack to do zlib.h include
improve autobuild linking to zlib
- improve link to zlib for autobuild HDF5
- correct szip typo
dudupe, robust
- deduplicate logic
- use modern link interface between targets, this helps avoid link-time failures
further fix autobuild HDF5
- simplify and correct the logic used to autobuild HDF5
- remove shaky, broken GNU Octave test
update HDF5 Git URL
For those autobuilding the HDF5 library itself, the HDF Group thankfully moved to community-friendly development by moving to GitHub. This broke the HDF5 download however, so we updated the URL.
We also corrected CMake script to disallow in-source builds, which are deprecated by CMake and just make a big mess of your directories.