Commit Graph
131 Commits
Author SHA1 Message Date
Chuck AtkinsandLarry Knox 4d666721f4 Fix INSTALL_CMAKE_DIR for GNU_DIRS and enable by default on Linux. (#6410)
The previous `lib/cmake/hdf5-config.cmake` isn't in CMake's find_package
search path since CMake expects that to be a common path with each
package having it's own subdirectory. This changes it to
`lib/cmake/hdf5/hdf5-config.cmake` so the config is now found when the
install prefix is in `CMAKE_PREFIX_PATH`.
This also sets `HDF5_USE_GNU_DIRS=ON` by default for non-Windows builds.

Fixes #6137

Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2026-07-20 11:59:13 -05:00
Scot Breitenfeld 8f2c548743 Fix runExecute.cmake: restore ERROR_APPEND and fix zero-or-more mask patterns (#6484)
* Fix runExecute.cmake: restore ERROR_APPEND and fix zero-or-more mask patterns

Three bugs were introduced when runTest.cmake was refactored into runExecute.cmake:

1. ERROR_APPEND=1 support was dropped. Tests that redirect their error-stack
   output to stderr and rely on ERROR_APPEND to combine it with stdout before
   comparison (e.g. H5TEST-err_compat, H5TEST-error_test) fail silently because
   the reference file never matches the truncated actual output.

2. " line [0-9]*" uses zero-or-more digits, so it matches " line " (with zero
   digits) in already-masked reference text like " line (number)", prepending
   another "(number)" and producing " line (number)(number)".

3. "HDF5 [1-9]*[.][0-9]*..." has the "HDF5 " prefix and uses [1-9]* (zero-or-
   more), so it does not match "2.2.0" in actual output (blocked by the leading
   "("), and double-masks "version (number)" in the reference.
   "H5Eget_auto[1-2]*" / "H5Eset_auto[1-2]*" have the same zero-or-more issue,
   double-masking "(1 or 2)" already present in reference files.

Fix: restore ERROR_APPEND handling; change * to + for all digit/char class
quantifiers that can match zero occurrences in already-masked reference text;
remove the "HDF5 " prefix from the version pattern. Same fix applied to
HDF5Examples/config/cmake/runExecute.cmake which has identical bugs.

* Fix AOCC CI: source setenv_AOCC.sh from its actual install location

install.sh generates setenv_AOCC.sh inside the aocc-compiler-VERSION/
directory (where it runs from), not in the repo root one level up.

* Fix AOCC CI: replace hardcoded runner paths with GITHUB_WORKSPACE

All /home/runner/work/hdf5/hdf5/ paths were hardcoded to the HDFGroup/hdf5
repo name. Running the workflow in any fork (e.g. brtnfld/hdf5_swmr_2)
puts the checkout under a different path, breaking AOCC/OpenMPI install,
configure, and build steps. Use $GITHUB_WORKSPACE / ${{ github.workspace }}
so the paths resolve correctly regardless of repo name.

* fix(aocc): source setenv_AOCC.sh from workspace root, not compiler subdir

install.sh places setenv_AOCC.sh in the workspace root, not inside the
aocc-compiler-X.X.X/ directory.

* Fix runExecute.cmake: anchor HDF5 version regex to full token

Replace the over-broad version pattern with one that matches the complete
'HDF5 (x.y.z)' token, preventing over-matching of IP addresses and other
version-like strings, and avoiding nested substitution artifacts in .err
reference comparisons. Applied identically to both copies of the file.
2026-06-30 14:05:00 -05:00
jhendersonHDF 2952bb9216 Mark several CMake variables as advanced (#6321) 2026-03-27 11:30:23 -05:00
jhendersonHDF e31194650f Suppress verbose testing output when testing with CMake presets (#6312) 2026-03-24 14:05:36 -05:00
jhendersonHDF 81326fd1d6 Remove 'set -e' from Maven testing scripts (#6262) 2026-03-04 16:26:50 -06:00
jhendersonHDF 3f4d26f90a Skip some parallel example tests for small MPIEXEC_MAX_NUMPROCS values (#6224) 2026-02-23 14:57:10 -06:00
Julien Schueller d58638be09 CMake: Fix Fortran cross-compilation support
Refactor the cross-compilation infrastructure to rely on the standard
CMAKE_CROSSCOMPILING_EMULATOR variable instead of the custom
CROSSCOMPILING_PATH environment hack.

Key changes:
- Removed `ENVIRONMENT "${CROSSCOMPILING_PATH}"` from all test definitions.
- Updated custom commands (e.g., H5match_types, H5_gen) to invoke the
  emulator explicitly when cross-compiling.
- Updated ConfigureChecks.cmake and HDF5UseFortran.cmake to enable
  `try_run` checks when an emulator is defined.
- Added config/toolchain/mingw-w64-x86-64-wine.sh wrapper to automatically
  locate MinGW runtime libraries (like libgfortran) for Wine execution.
- Cleaned up toolchain files to remove hardcoded emulator paths, deferring
  configuration to the build environment.
2026-02-13 14:45:02 -06:00
Scot Breitenfeld 49ae2f225a Updates to #6205 (#6208)
* Fix MPI Fortran configuration for HDF5Examples (#6205)

When building Fortran parallel examples standalone without MPI
wrappers, the compiler cannot find mpi.mod because
MPI_Fortran_INCLUDE_DIRS is not populated.

* Use MPI::MPI_Fortran imported target instead of raw MPI variables

Replace manual MPI_Fortran_LIBRARIES, MPI_Fortran_LINK_FLAGS, and
MPI_Fortran_INCLUDE_DIRS usage with the MPI::MPI_Fortran imported
target, which transitively carries all include dirs, compile flags,
and link flags. This eliminates the CMAKE_Fortran_EXE_LINKER_FLAGS
hack and the manual target_include_directories in H5PAR.
2026-02-12 14:10:39 -06:00
Scot Breitenfeld b8b246e14a Fix MPI Fortran configuration for HDF5Examples (#6206)
When building Fortran parallel examples without MPI wrappers, the
compiler couldn't find mpi.mod because MPI_Fortran_INCLUDE_DIRS
was not populated. This occurred because find_package(MPI) was only
called for C, not Fortran.

Added enable_language(Fortran) and find_package(MPI REQUIRED
COMPONENTS Fortran) to properly configure MPI for Fortran examples,
ensuring MPI include directories and libraries are correctly set.
2026-02-06 10:06:35 -06:00
H. Joe Lee dfd43b677f docs: change .sh to .rpm or .deb for Linux binary distribution (#6113) 2026-02-02 10:11:13 -06:00
Matt L 8ebdb2f6d4 Fix inconsistent empty postfix handling (#6094) 2026-01-24 12:03:19 -06:00
Scot Breitenfeld 5711c7466f Update the version to 2.1 (#6147)
Update version to 2.1 and derive version information from H5public.h, removing h5vers script and updating CMake and Java configurations.

Versioning:
Update version to 2.1 in H5public.h.
Derive version strings in H5public.h using macros.
CMake:
Extract version from H5public.h in HDF5config.cmake and HDF5AsSubdirMacros.cmake.
Configure README.md and CHANGELOG.md using CMakeLists.txt.
Java:
Generate H5Version.java from H5public.h for version consistency.
Update H5.java to use H5Version for version constants.
Removals:
Delete bin/h5vers script, previously used for version management.
2026-01-21 23:02:49 -06:00
bmribler 3f49cfaf41 Updated current release in README files (#6072)
* Update current release
2025-12-03 16:43:42 -06:00
Allen Byrne 9b865ef667 Fixes for maven verify and testing (#5996)
Add generate-index-html.sh script and update workflows to generate and upload index.html files for HDF5 releases, enhancing Maven package testing and deployment.
2025-11-09 16:58:38 -06:00
Allen Byrne f8baa1b498 Fix and update maven package workflows and documentation (#5994)
Update workflows, scripts, and documentation for improved Maven package handling and testing, including new scripts for JNI and FFM implementations.
2025-11-07 23:34:04 -06:00
Allen Byrne e479d37d57 Minor edits for maven doxygen (#5990)
Adds documentation for Maven integration with HDF5 Java bindings, including usage, building, and troubleshooting instructions.
2025-11-07 11:16:21 -06:00
Allen Byrne b754dcb8f2 Move Java wrappers to FFM using jextract and java 25 (#5957)
FFM build requires Java 25, Jextract 25.
Generates FFM bindings during configure.
JNI is default when the requirements are not met or can be forced.
Presets added for maven and FFM - JNI is default selection.
Enhanced Maven options will work with either JNI or FFM
New Workflows for testing and maven uploads.
Extensive documentation changes for java.
2025-11-04 14:03:06 -06:00
Neil Fortner 5e03b3a315 Change default file format to 1.8 (#5949)
Change default file format to 1.8 across various tests and examples, updating file creation and access logic accordingly.

Behavior:
Default file format version changed to 1.8 in H5Pfapl.c.
Updated file creation and access to use 1.8 format in h5ex_g_compact.c and test_file_image.c.
Set earliest file format in multiple test files including cache_tagging.c, dtypes.c, and links.c.
Tests:
Modified expected output in tools/test/misc/expected/*.ls files to reflect new file format locations.
Adjusted test logic in test_file_image.c and cache_tagging.c to accommodate format changes.
Misc:
Added comments and TODOs for future format testing in test_file_image.c.
Minor variable renaming for clarity in test_file_image.c.
2025-10-30 15:26:12 -05:00
Allen Byrne 4202ae830c Adjust HDF5Examples HDF5 version var to correct version check issue for 2.0 (#5926)
Adjusts H5_LIBVER_DIR in CMakeLists.txt to include release version for major versions above 1, fixing #5925.
2025-10-23 10:40:32 -05:00
Allen Byrne fb35cde24a Rework Fortran configure to allow cross compile overrides (#5720)
Behavior:
Modify HDF5UseFortran.cmake to handle cross-compilation by providing default KINDs and sizes when CMAKE_CROSSCOMPILING is true.
Default values for INTEGER and REAL KINDs and their sizes are set when cross-compiling.
Error messages are adjusted to reflect cross-compilation scenarios.
Logic:
Conditional checks added for CMAKE_CROSSCOMPILING to determine if default values should be used.
Default values include INTEGER KINDs {1,2,4,8,16} and REAL KINDs {4,8,10,16}.
Default sizes for native kinds are set to 4 for INTEGER and REAL, and 8 for DOUBLE PRECISION when cross-compiling.
Misc:
Adjustments to verbose messages to indicate when defaults are used during cross-compilation.
2025-10-12 17:30:46 -05:00
Allen Byrne 701b46daed Rename the HDF5Examples build option prefix (#5906)
Renamed all HDF5 examples build options from H5EX_* to H5EXAMPLE_* to better distinguish them from library options when building examples alongside the library.

Updated all CMake files, including:
Main examples CMakeLists.txt files
CMake configuration files in config/ directory
CMake preset files
Updated documentation files to reflect new option names
2025-10-08 15:53:44 -05:00
Allen Byrne 8f89d1fe7c Develop big endianCorrect BE testing issues (#5866)
* Use bigendian specific files on those machine
* Examples need a bigendian check and var
* Update the reference files
2025-09-27 08:21:12 -05:00
H. Joe Lee c38b148052 chore: improve comment consistency (#5879)
Add a space and capitalize.
2025-09-26 13:45:33 -05:00
Dana Robinson 3b47e2d227 Remove hbool_t from the public API (#5802)
* Remove hbool_t from the public API

This was previously removed from the source code, but the API calls
retained hbool_t in the public API calls. This commit removes
hbool_t from the public APIs.

hbool_t is retained as a typedef for bool in H5public.h so existing
code doesn't break.
2025-09-15 17:36:22 -05:00
Larry Knox e3012ddc32 Set *PROVIDES* variables for all that are used in conditions for (#5757) 2025-09-04 08:03:43 -05:00
Allen Byrne 05ce57609c Rename the install config variables to indicate library state (#5716)
This update systematically renames variables across 2.0+ CMake files in the HDF5Examples directory and configuration templates. The goal is to change variables from sounding like build "options" (e.g., HDF5_BUILD_TOOLS, HDF5_ENABLE_PARALLEL) to reflecting library "state" (e.g., what features the installed library provides).
2025-08-28 10:06:37 -05:00
Allen Byrne 63803d7115 allow better CMake version testing (#5727)
* add cmake latest workflow with lukka/get-cmake@latest
* Upgrade minimum CMake version to 3.26
2025-08-23 06:43:20 -05:00
Allen Byrne 497b65ad0f Add file header comments to CMake files (#5688) 2025-08-13 07:19:57 -05:00
Allen Byrne 044c04e702 Correct jpeg configuration variable (#5701)
* Restrict bitround filter to ddl header only
2025-08-04 11:35:13 -05:00
Allen Byrne 69d50bfb33 Sync and fix examples for plugins (#5692) 2025-07-30 16:56:20 -05:00
Allen Byrne fc3f153742 Add/update plugins examples (#5670)
* Fixed all incorrect control char
* Synch filter examples to other examples
2025-07-28 09:34:22 -05:00
Allen Byrne f8aa8aa1ba Improve the installation and usage docs for CMake (#5636)
* Workflow presets introduced in version CMake 3.25
2025-07-28 09:14:35 -05:00
jhendersonHDF 4a12cfec19 Align CMake compiler wrappers with old Autotools versions (#5649)
Implemented missing --help/-h, -c, -echo and -shlib/-noshlib options

Added new -nohl option to avoid building and linking against
high-level HDF5 libraries if desired

Implemented adding of HDF5 installation library directory to rpath of
resulting executable/library and added new -norpath option to avoid
this behavior if desired

Added parsing of HDF5_USE_SHLIB environment variable to determine
whether to link against shared or static HDF5 libraries

Added parsing of HDF5_PKG_CONFIG_ARGS environment variable to separate
pkg-config-specific options from compiler-specific options and prevent
conflicts
2025-07-28 07:42:52 -05:00
Allen Byrne ed5c07223a Create a file containing the major CMake options (#5666) 2025-07-18 14:47:02 -05:00
Allen Byrne 968cc9dd44 Add script to test examples with h5*cc pkg-config wrappers (#5486) 2025-07-16 13:57:43 -05:00
Allen Byrne f9ebbb9ab2 Move fortran flags processing after fortran enabled (#5627) 2025-07-10 10:31:47 -05:00
Aleksandar Jelenak cb37168966 Fix comment typo in h5ex_d_zstd.c (#5642)
"gzip" -> "ZSTD"
2025-06-27 15:28:33 -04:00
jhendersonHDF 51dd7758fe Fix resource leak in Subfiling example programs and tests (#5617) 2025-06-20 06:54:37 -05:00
Allen Byrne d6ca8411de Correct name of CMake option to HDF5_ENABLE_DEPRECATED_SYMBOLS (#5587) 2025-06-12 18:47:01 -05:00
Matt L 01d61245fe Correct h5diff test ref files (#5596) 2025-06-12 13:04:24 -05:00
Matt L b93cd97ba3 Replace filtered temporary files with streams (#5583) 2025-06-06 11:03:08 -05:00
Matt L 17c16b659a Correct filtered test file cleanup paths (#5562) 2025-06-04 12:56:46 -05:00
Matt L b594d01986 Simplify runTest file filtering (#5552) 2025-05-30 12:39:15 -05:00
Allen Byrne 90dca6cc6b Add section about Test Labels (#5556) 2025-05-30 10:29:06 -05:00
Allen Byrne 4cc7161fc2 refactor run scripts to a single macros with includes (#5538)
* Refactor the CMake scripts into a single script
* Adjust args to do grep testing
2025-05-24 16:26:46 -05:00
Allen Byrne aa9784ea25 Refactor the config/cmake folder #5446 (#5540)
* Update config/examples/HDF5AsSubdirMacros.cmake
* Move f90 config file and remove m4 dir
2025-05-22 11:20:51 -05:00
Allen Byrne 973dca8c30 Cleanup obsolete files and references (#5543) 2025-05-21 09:33:25 -05:00
Allen Byrne e3f76b7fc1 Add bitgroom filter support (#5514)
* Add support for bitgroom filter
* Add settings for bitround remove unused settings
2025-05-08 14:39:13 -05:00
Allen Byrne cdc2ae109f Update HDF5Examples cmake files from root files (#5499) 2025-05-06 10:44:29 -05:00
Allen Byrne 2a7fc63be7 Add more install info (#5478)
* Translate some sections from the old INSTALL_Autotools.txt file

* Fix link
2025-05-02 14:10:48 -05:00