HDF5-1.14.6-iimpi-2025b.eb 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. easyblock = 'CMakeMake'
  2. name = 'HDF5'
  3. # Note: Odd minor releases are only RCs and should not be used.
  4. version = '1.14.6'
  5. homepage = 'https://portal.hdfgroup.org/display/support'
  6. description = """HDF5 is a data model, library, and file format for storing and managing data.
  7. It supports an unlimited variety of datatypes, and is designed for flexible
  8. and efficient I/O and for high volume and complex data."""
  9. toolchain = {'name': 'iimpi', 'version': '2025b'}
  10. toolchainopts = {'pic': True, 'usempi': True, 'optarch': 'mavx2'}
  11. source_urls = ['https://github.com/HDFGroup/hdf5/archive']
  12. sources = ['hdf5_%(version)s.tar.gz']
  13. checksums = ['09ee1c671a87401a5201c06106650f62badeea5a3b3941e9b1e2e1e08317357f']
  14. builddependencies = [('CMake', '4.0.3')]
  15. dependencies = [
  16. ('libaec', '1.1.4'),
  17. ('Perl', '5.40.2'),
  18. ('zlib', '1.3.1'),
  19. ]
  20. preconfigopts = 'export LDFLAGS="$LDFLAGS -pthread" && '
  21. preconfigopts += 'export RUNPARALLEL="mpirun -np $${NPROCS:=3}" && '
  22. configopts = ' '.join([
  23. '-DHDF5_BUILD_CPP_LIB=ON',
  24. '-DHDF5_BUILD_FORTRAN=ON',
  25. '-DHDF5_ENABLE_THREADSAFE=ON',
  26. '-DALLOW_UNSUPPORTED=ON', # fortran+threadsafe requires unsupported
  27. '-DHDF5_ENABLE_PARALLEL=ON',
  28. ])
  29. # h5redeploy is shipped in 1.14.6 but not installed by CMake. This will be removed in a future HDF5 release.
  30. postinstallcmds = [
  31. "cp ../hdf5*/bin/h5redeploy.in %(installdir)s/bin/h5redeploy && chmod +x %(installdir)s/bin/h5redeploy",
  32. ]
  33. _extra_binaries = ["h5perf", "h5pcc", "h5pfc", "ph5diff"]
  34. _h5binaries = ["c++", "copy", "debug", "diff", "dump", "import", "jam", "ls", "mkgrp", "perf_serial", "redeploy",
  35. "repack", "repart", "stat", "unjam"]
  36. _binaries = ["h5%s" % x for x in _h5binaries] + _extra_binaries
  37. _libs = ["libhdf5%s.%s" % (lib, SHLIB_EXT) for lib in ['', '_cpp', '_fortran', '_hl_cpp', '_hl', '_hl_fortran']]
  38. sanity_check_paths = {
  39. 'files': [f"bin/{x}" for x in _binaries] + [f"lib/{lib}" for lib in _libs],
  40. 'dirs': ['include'],
  41. }
  42. modextravars = {'HDF5_DIR': ''}
  43. moduleclass = 'data'