Update hdf5 2.1.0 with 17commits from develop since 2/5/2026 (#6229)

* 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.

* Adds RFCs to the RFC table (#6190)

* Added two RFCs to the RFC table

"Adding support for digitally signed plugins to HDF5"
" Write-Ahead log"

* Updated to use the ACM link

* Add HDF5 2.0.0 Library Migration Guide (#6183)

* Add HDF5 2.0.0 Library Migration Guide

* Revise HDF5 migration guide for version 2.0.0

Use 2.0.0 consistently.

* Clarify API changes in HDF5 2.0.0 Migration Guide

* Fixes the "multiple @param documentation sections" doxygen warnings (#6195)

Addresses the "multiple @ param documentation sections" warnings are caused by the interaction of three things:

1. MACRO_EXPANSION = YES with EXPAND_ONLY_PREDEF = NO in Doxyfile.in

2. Versioned API macros in H5version.h like:

\def documentation in APIVersions.dox like:

3. \def H5Tarray_create \api_vers_2{H5Tarray_create,H5Tarray_create1,H5Tarray_create2}

Because Doxygen expands all macros, it sees H5Tarray_create as an alias for H5Tarray_create1. It then associates documentation from both the \def block (for the macro) and the function's own doc block (with \param entries) with the same function — resulting in "multiple @ param documentation sections."

* Update Doxygen version from 1.16.0 to 1.16.1

Use Doxygen 1.16.1 for all platforms. This version includes the latest
bug fixes and improvements while maintaining compatibility with our
documentation format.

* Fix Windows Doxygen installation for version 1.16.1

Handle different Windows binary naming conventions across Doxygen versions:
- 1.16.1 uses: doxygen-VERSION.windows.x64.bin.zip
- 1.16.0 uses: doxygen-VERSION.x64.bin.zip

Try the newer naming convention first, then fall back to the older one
if the download fails. This ensures compatibility across versions.

* Use ssciwr/doxygen-install in setup-doxygen action

Replace direct installation of official Doxygen binaries with
ssciwr/doxygen-install action. This avoids Java documentation parsing
errors that occur with official binaries but not with distribution
builds.

The setup-doxygen action now serves as a thin wrapper around
ssciwr/doxygen-install@f13be16c83 (v1),
using commit hash for security and reproducibility.

* Remove redundant version specification from workflows

The setup-doxygen action already has a default version (1.16.1),
so explicit version specification in workflows is unnecessary.
This follows DRY principles and makes version updates simpler.

* 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.

* Update nvhpc version to 26.1 with CUDA version 13.1. (#6213)

# branches: [develop]

* Inherit Debug C build flags in Developer build mode (#6182)

* Bump the github-actions group across 1 directory with 11 updates (#6215)

* Bump the github-actions group across 1 directory with 11 updates

Bumps the github-actions group with 11 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/cache](https://github.com/actions/cache) | `5.0.1` | `5.0.3` |
| [lukka/get-cmake](https://github.com/lukka/get-cmake) | `4.2.1` | `4.2.3` |
| [softwareforgood/check-artifact-v4-existence](https://github.com/softwareforgood/check-artifact-v4-existence) | `0.3.0` | `0.4.1` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.31.9` | `4.32.2` |
| [azure/trusted-signing-action](https://github.com/azure/trusted-signing-action) | `0.5.11` | `1.1.0` |
| [cygwin/cygwin-install-action](https://github.com/cygwin/cygwin-install-action) | `7d2dc1e241644c3318bed9ec74115d1929baa681` | `2566376092c4e280f21131be027af3f5bb2420a4` |
| [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) | `5.1.1` | `6.0.0` |
| [vmactions/freebsd-vm](https://github.com/vmactions/freebsd-vm) | `1.3.4` | `1.4.2` |
| [vmactions/openbsd-vm](https://github.com/vmactions/openbsd-vm) | `1.3.1` | `1.3.5` |
| [mpi4py/setup-mpi](https://github.com/mpi4py/setup-mpi) | `1.4.1` | `1.4.2` |
| [actions/setup-python](https://github.com/actions/setup-python) | `6.1.0` | `6.2.0` |

 vmactions/openbsd-vm@d6c29ce1b4 (`1.3.5`) failed to run ssh on the github runner.  271a1ba62300483cfc58345ff9f425f1349a2cab for v1.3.4 was used instead.

* Fix issue with some Subfiling VFD test files not getting deleted (#6212)

* 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.

* Add Doxygen setup that results in missing Doygen documentation. (#6217)

* Added setup-doxygen action in ctest.yml Ubuntu gcc workflow.
* Also added actions/checkout for setup-doxygen.

* Fixes link checker failure (#6219)

Removed https:// as a workaround to avoid error by the link checker.

* Remove force-setting of ZLIB_USE_EXTERNAL / SZIP_USE_EXTERNAL (#6222)

Removes the force-setting of ZLIB_USE_EXTERNAL and SZIP_USE_EXTERNAL to
ON when HDF5_ALLOW_EXTERNAL_SUPPORT is GIT or TGZ so that zlib and
szip can be independently built from the system or externally as desired

* Truncate Subfiling VFD's stub file when truncating subfiles (#6210)

Ensure that the Subfiling VFD's stub file gets truncated when subfiles are
being truncated to avoid a potentially unreadable file when the EOF doesn't
match the stored EOF value

Co-authored-by: Larry Knox <lrknox@hdfgroup.org>

* Add CMake function to extract pkg-config info from libraries (#6220)

* Consistent extension for C++ (#6214)

Except for this file, all use cpp instead of cxx. No obvious reason why
the same file types should have different extensions.

* Enable Windows ARM64 CTest CI for release binaries (#6177)

* ci: add Windows ARM64 MSVC CTest job

* ci: add MSYS2 clangarm64 build on Windows ARM64

* cmake: add MSVC ARM64 presets for Windows

* zlib: fix MSVC static library flags for ARM64 builds

* Renamed .hxx file to .h and updated the #include for it.

* Committing clang-format changes

---------

Co-authored-by: Scot Breitenfeld <brtnfld@hdfgroup.org>
Co-authored-by: bmribler <39579120+bmribler@users.noreply.github.com>
Co-authored-by: Gerd Heber <gheber@hdfgroup.org>
Co-authored-by: jhendersonHDF <jhenderson@hdfgroup.org>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Julien Schueller <schueller@phimeca.com>
Co-authored-by: Martin Diehl <mail@martin-diehl.net>
Co-authored-by: Harish RS <harish.rajaselvan@multicorewareinc.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
Larry Knox
2026-02-20 17:03:09 -06:00
committed by GitHub
co-authored by Scot Breitenfeld bmribler Gerd Heber jhendersonHDF dependabot[bot] Julien Schueller Martin Diehl Harish RS github-actions
parent 6f5274847b
commit cde84cdc8f
143 changed files with 2129 additions and 1396 deletions
+14
View File
@@ -0,0 +1,14 @@
name: 'Setup Doxygen'
description: 'Install Doxygen with version that supports Fortran cross-references'
inputs:
version:
description: 'Doxygen version to install'
required: false
default: '1.16.1'
runs:
using: 'composite'
steps:
- name: Install Doxygen
uses: ssciwr/doxygen-install@f13be1686235deee0aeb6cdf56640170691dc96b # v1
with:
version: ${{ inputs.version }}
+16 -4
View File
@@ -37,10 +37,13 @@ jobs:
with:
sparse-checkout: .github/actions
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (Linux_coverage)
run: |
sudo apt update
sudo apt-get install ninja-build doxygen graphviz curl build-essential
sudo apt-get install ninja-build graphviz curl build-essential
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt-get install lcov -q -y
@@ -138,10 +141,13 @@ jobs:
with:
sparse-checkout: .github/actions
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (Linux_Leak)
run: |
sudo apt update
sudo apt-get install ninja-build doxygen graphviz curl
sudo apt-get install ninja-build graphviz curl
- name: Set file base name (Linux_Leak)
id: set-file-base
@@ -239,10 +245,13 @@ jobs:
with:
sparse-checkout: .github/actions
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (Linux_Address)
run: |
sudo apt update
sudo apt-get install ninja-build doxygen graphviz curl
sudo apt-get install ninja-build graphviz curl
- name: Set file base name (Linux_Address)
id: set-file-base
@@ -340,10 +349,13 @@ jobs:
with:
sparse-checkout: .github/actions
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (Linux_UndefinedBehavior)
run: |
sudo apt update
sudo apt-get install ninja-build doxygen graphviz curl
sudo apt-get install ninja-build graphviz curl
- name: Set file base name (Linux_UndefinedBehavior)
id: set-file-base
+1 -1
View File
@@ -56,7 +56,7 @@ jobs:
- name: Cache OpenMPI ${{ env.MPIVERDOT }} installation
id: cache-openmpi-5_0_7
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: /home/runner/work/hdf5/hdf5/openmpi-${{ env.MPIVERDOT }}-install
key: ${{ runner.os }}-${{ runner.arch }}-openmpi-5_0_7-cache
+22 -29
View File
@@ -38,13 +38,14 @@ jobs:
runs-on: windows-11-arm
if: ${{ inputs.build_mode != 'Debug' }}
steps:
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -67,10 +68,6 @@ jobs:
echo "CXX=cl.exe" >> $GITHUB_ENV
echo "CC=cl.exe" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
@@ -164,7 +161,7 @@ jobs:
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
with:
name: zip-vs2022_cl-${{ inputs.build_mode }}-${{ inputs.save_binary }}-binary
path: ${{ runner.workspace }}/build/HDF5-*-win64.zip
path: ${{ runner.workspace }}/build/HDF5-*-winarm64.zip
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (inputs.thread_safety != 'TS') && (inputs.concurrent != 'CC') && ( inputs.save_binary != 'skip') }}
@@ -172,21 +169,19 @@ jobs:
name: "Ubuntu gcc-${{ inputs.build_mode }}-${{ inputs.thread_safety }}-${{ inputs.concurrent }}"
runs-on: ubuntu-24.04-arm
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (Linux)
run: |
sudo apt-get update
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
@@ -283,16 +278,18 @@ jobs:
name: "MacOS Clang-${{ inputs.build_mode }}-${{ inputs.thread_safety }}-${{ inputs.concurrent }}"
runs-on: macos-15
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (macOS)
run: brew install ninja curl
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -303,10 +300,6 @@ jobs:
which cmake
cmake --version
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
+3 -3
View File
@@ -116,7 +116,7 @@ jobs:
- name: Install Dependencies (Linux)
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
- name: Set up JDK ${{ inputs.java_version }}
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
@@ -173,7 +173,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Install Dependencies (MacOS_latest)
run: brew install ninja doxygen
run: brew install ninja
- name: Set up JDK ${{ inputs.java_version }}
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
@@ -241,7 +241,7 @@ jobs:
- name: Install Dependencies (Linux)
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
- name: Set up JDK ${{ inputs.java_version }}
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
+2 -2
View File
@@ -28,7 +28,7 @@ jobs:
steps:
- name: Check if 'libaws-c-s3-${{ inputs.build_mode }}' exists
id: check_artifact
uses: softwareforgood/check-artifact-v4-existence@9772fb919376f476e208587e99db557f956a2276 # v0
uses: softwareforgood/check-artifact-v4-existence@3bbed0d010832929f3e2c1e9ff75e0f09a35bcf1 # v0
with:
name: libaws-c-s3-${{ inputs.build_mode }}
@@ -78,7 +78,7 @@ jobs:
- name: Cache/Restore aws-c-s3 (GCC) installation
id: cache-aws-c-s3-ubuntu-gcc
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: ${{ runner.workspace }}/aws-c-s3-build
key: ${{ runner.os }}-${{ runner.arch }}-gcc-aws-c-s3-${{ steps.get-sha.outputs.sha }}-${{ inputs.build_mode }}
+1 -1
View File
@@ -49,7 +49,7 @@ jobs:
- name: Cache MPICH (GCC) installation
id: cache-mpich-ubuntu-gcc
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: ${{ runner.workspace }}/mpich
key: ${{ runner.os }}-${{ runner.arch }}-gcc-mpich-${{ steps.get-sha.outputs.sha }}-${{ inputs.build_mode }}
+1 -1
View File
@@ -49,7 +49,7 @@ jobs:
- name: Cache OpenMPI (GCC) installation
id: cache-openmpi-ubuntu-gcc
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: ${{ runner.workspace }}/openmpi
key: ${{ runner.os }}-${{ runner.arch }}-gcc-openmpi-${{ steps.get-sha.outputs.sha }}-${{ inputs.build_mode }}
+3 -3
View File
@@ -58,7 +58,7 @@ jobs:
..
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
uses: github/codeql-action/init@v4.32.2
with:
languages: c-cpp
build-mode: manual
@@ -78,7 +78,7 @@ jobs:
shell: bash
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
uses: github/codeql-action/analyze@v4.32.2
with:
category: "/language:c-cpp"
output: sarif-results
@@ -95,6 +95,6 @@ jobs:
output: sarif-results/cpp.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v4
uses: github/codeql-action/upload-sarif@v4.32.2
with:
sarif_file: sarif-results/cpp.sarif
+8 -9
View File
@@ -34,21 +34,19 @@ jobs:
# - name: Verify Wine64 installation
# run: wine64 --version
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install MinGW64 Cross-Compiler
run: |
sudo apt update
sudo apt-get install -y mingw-w64
sudo apt-get install gfortran-mingw-w64-x86-64-win32
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CMAKE CONFIGURE
- name: CMake Configure
run: |
@@ -58,6 +56,7 @@ jobs:
-G Ninja \
--log-level=VERBOSE \
-DCMAKE_TOOLCHAIN_FILE:STRING=config/toolchain/mingw64.cmake \
-DCMAKE_CROSSCOMPILING_EMULATOR:PATH=$GITHUB_WORKSPACE/config/toolchain/mingw-w64-x86-64-wine.sh \
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
-DHDF5_ENABLE_DOXY_WARNINGS:BOOL=ON \
-DHDF5_BUILD_DOC:BOOL=ON \
+189 -24
View File
@@ -90,16 +90,11 @@ jobs:
- name: Install Dependencies (Windows)
run: choco install ninja
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -179,7 +174,7 @@ jobs:
shell: bash
- name: Sign files with Trusted Signing
uses: azure/trusted-signing-action@1d365fec12862c4aa68fcac418143d73f0cea293 # v0.5.11
uses: azure/trusted-signing-action@87c2e83e6868da99d3380aa309851b32ed9a8346 # v1.1.0
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -234,6 +229,178 @@ jobs:
path: ${{ runner.workspace }}/buildmsi/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl.msi
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
build_and_test_win_arm64:
# Windows ARM64 w/ MSVC (Native)
#
name: "Windows MSVC ARM64 CTest"
runs-on: windows-11-arm
needs: [check-secret]
steps:
- name: Install Dependencies (Windows ARM64)
run: choco install ninja
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
with:
arch: arm64
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
- name: Check CMake Version
shell: bash
run: |
which cmake
cmake --version
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'temurin'
architecture: 'aarch64'
- name: Set environment for MSVC ARM64 (Windows)
run: |
echo "CXX=cl.exe" >> $GITHUB_ENV
echo "CC=cl.exe" >> $GITHUB_ENV
shell: bash
- name: Set file base name (Windows ARM64)
id: set-file-base
run: |
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
if [[ '${{ inputs.use_environ }}' == 'release' ]]
then
SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}")
else
SOURCE_NAME_BASE=$(echo "hdfsrc")
fi
echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT
shell: bash
# Get files created by release script
- name: Get zip-tarball (Windows ARM64)
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v6
with:
name: zip-tarball
path: ${{ github.workspace }}
- name: using powershell
shell: pwsh
run: Get-Location
- name: List files for the space (Windows ARM64)
run: |
Get-ChildItem -Path ${{ github.workspace }}
Get-ChildItem -Path ${{ runner.workspace }}
shell: pwsh
- name: Uncompress source (Windows ARM64)
working-directory: ${{ github.workspace }}
run: 7z x ${{ steps.set-file-base.outputs.FILE_BASE }}.zip
shell: bash
- name: Install TrustedSigning (Windows ARM64)
run: |
Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe
.\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x
.\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.86 -x
shell: pwsh
if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}
- name: create-json
id: create-json
uses: jsdaniell/create-json@b8e77fa01397ca39cc4a6198cc29a3be5481afef # v1.2.3
with:
name: "credentials.json"
dir: '${{ steps.set-file-base.outputs.SOURCE_BASE }}'
json: '{"Endpoint": "${{ secrets.AZURE_ENDPOINT }}","CodeSigningAccountName": "${{ secrets.AZURE_CODE_SIGNING_NAME }}","CertificateProfileName": "${{ secrets.AZURE_CERT_PROFILE_NAME }}"}'
if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}
- name: Install WiX v3.14
run: |
Invoke-WebRequest -Uri https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314-binaries.zip -OutFile wix314-binaries.zip
Expand-Archive -Path wix314-binaries.zip -DestinationPath C:\wix314
echo "C:\wix314" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "WIX=C:\wix314" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
shell: pwsh
- name: Run CTest (Windows ARM64)
env:
BINSIGN: ${{ needs.check-secret.outputs.sign-state }}
SIGNTOOLDIR: ${{ github.workspace }}/Microsoft.Windows.SDK.BuildTools/bin/10.0.22621.0/arm64
run: |
cd "${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}"
cmake --workflow --preset=${{ inputs.preset_name }}-MSVC-ARM64 --fresh
shell: bash
- name: Sign files with Trusted Signing
uses: azure/trusted-signing-action@1d365fec12862c4aa68fcac418143d73f0cea293 # v0.5.11
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }}
endpoint: ${{ secrets.AZURE_ENDPOINT }}
trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
files-folder: ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC-ARM64
files-folder-filter: msi
file-digest: SHA256
timestamp-rfc3161: http://timestamp.acs.microsoft.com
timestamp-digest: SHA256
if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}
- name: Publish binary (Windows ARM64)
id: publish-ctest-binary
run: |
mkdir "${{ runner.workspace }}/build"
mkdir "${{ runner.workspace }}/build/hdf5"
Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/LICENSE -Destination ${{ runner.workspace }}/build/hdf5/
Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC-ARM64/README.md -Destination ${{ runner.workspace }}/build/hdf5/
Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC-ARM64/* -Destination ${{ runner.workspace }}/build/hdf5/ -Include *.zip
cd "${{ runner.workspace }}/build"
7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl_arm64.zip hdf5
shell: pwsh
- name: Publish msi binary (Windows ARM64)
id: publish-ctest-msi-binary
run: |
mkdir "${{ runner.workspace }}/buildmsi"
Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC-ARM64/* -Destination ${{ runner.workspace }}/buildmsi/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl_arm64.msi -Include *.msi
shell: pwsh
- name: List files in the space (Windows ARM64)
run: |
Get-ChildItem -Path ${{ github.workspace }}
Get-ChildItem -Path ${{ runner.workspace }}
shell: pwsh
# Save files created by CTest script
- name: Save published binary (Windows ARM64)
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
with:
name: zip-vs2022_cl_arm64-binary
path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl_arm64.zip
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
- name: Save published msi binary (Windows ARM64)
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
with:
name: msi-vs2022_cl_arm64-binary
path: ${{ runner.workspace }}/buildmsi/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl_arm64.msi
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
build_and_test_linux:
# Linux (Ubuntu) w/ gcc
#
@@ -246,13 +413,16 @@ jobs:
sudo apt-get update
sudo apt-get install ninja-build graphviz
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
- name: Get Actions
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
version: "1.13.2"
sparse-checkout: .github/actions
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -419,11 +589,6 @@ jobs:
- name: Install Dependencies (MacOS_latest)
run: brew install ninja
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: check clang version
shell: bash
run: |
@@ -431,7 +596,7 @@ jobs:
clang -v
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -650,10 +815,10 @@ jobs:
- name: Install Dependencies (Linux S3)
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen
sudo apt-get install ninja-build
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -755,7 +920,7 @@ jobs:
version: '2025.0'
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -826,7 +991,7 @@ jobs:
shell: pwsh
- name: Sign files with Trusted Signing (Windows_intel)
uses: azure/trusted-signing-action@1d365fec12862c4aa68fcac418143d73f0cea293 # v0.5.11
uses: azure/trusted-signing-action@87c2e83e6868da99d3380aa309851b32ed9a8346 # v1.1.0
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -891,7 +1056,7 @@ jobs:
- name: Install Dependencies (Linux_intel)
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
- name: add oneAPI to env
uses: fortran-lang/setup-fortran@47809fdb6e637da656ce9ada436527b240c1287f # v1
@@ -901,7 +1066,7 @@ jobs:
version: '2025.0'
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -966,4 +1131,4 @@ jobs:
with:
name: tgz-ubuntu-2404_intel-binary
path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2404_intel.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
+1 -1
View File
@@ -39,7 +39,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Install Cygwin
uses: cygwin/cygwin-install-action@7d2dc1e241644c3318bed9ec74115d1929baa681 # master
uses: cygwin/cygwin-install-action@2566376092c4e280f21131be027af3f5bb2420a4 # master
with:
packages: cmake gcc-fortran make ninja zlib-devel flex bison perl
+1 -1
View File
@@ -42,7 +42,7 @@ jobs:
path: ${{ github.workspace }}/${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen
- name: Setup AWS CLI
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 # v6.0.0
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+34 -12
View File
@@ -29,10 +29,18 @@ jobs:
FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
- name: Get Actions
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
sparse-checkout: .github/actions
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install libaec0 libaec-dev
sudo apt install gcc-12 g++-12 gfortran-12
@@ -100,14 +108,17 @@ jobs:
runs-on: windows-latest
steps:
- name: Get Actions
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
sparse-checkout: .github/actions
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (Windows)
run: choco install ninja
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
@@ -176,14 +187,17 @@ jobs:
name: "MacOS Clang"
runs-on: macos-latest
steps:
- name: Get Actions
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
sparse-checkout: .github/actions
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (MacOS_latest)
run: brew install ninja
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Check Clang Version
shell: bash
run: |
@@ -263,10 +277,18 @@ jobs:
name: "Ubuntu Clang"
runs-on: ubuntu-latest
steps:
- name: Get Actions
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
sparse-checkout: .github/actions
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (Linux_clang)
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz curl
sudo apt-get install ninja-build graphviz curl
- name: Check Clang Version
shell: bash
+1 -1
View File
@@ -44,7 +44,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and test on FreeBSD
uses: vmactions/freebsd-vm@c54ba3b62f49de9b67a2f3af017ab6152f0ebb6f # v1
uses: vmactions/freebsd-vm@c9f815bc7aa0d34c9fdd0619b034a32d6ca7b57e # v1
with:
release: ${{ matrix.freebsd-version }}
usesh: true
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
shell: bash
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
- name: Install oneAPI (Linux)
@@ -43,7 +43,7 @@ jobs:
distribution: 'temurin'
- name: Cache Maven dependencies
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-examples-${{ hashFiles('**/pom-examples.xml*') }}
@@ -206,7 +206,7 @@ jobs:
distribution: 'temurin'
- name: Cache Maven dependencies
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-examples-${{ hashFiles('**/pom-examples.xml*') }}
@@ -325,7 +325,7 @@ jobs:
distribution: 'temurin'
- name: Cache Maven dependencies
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-examples-${{ hashFiles('**/pom-examples.xml*') }}
@@ -153,7 +153,7 @@ jobs:
choco install ninja
- name: Cache CMake build
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: |
build-test-*
+1 -1
View File
@@ -23,7 +23,7 @@ jobs:
shell: bash
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install -y libaec-dev zlib1g-dev wget curl bzip2 flex bison cmake libzip-dev openssl build-essential
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
sudo apt install libaec0 libaec-dev
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
sudo apt install libaec0 libaec-dev
+100 -69
View File
@@ -27,19 +27,22 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
@@ -86,19 +89,22 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
@@ -140,19 +146,22 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
@@ -194,19 +203,22 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
@@ -246,20 +258,23 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
@@ -298,20 +313,23 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
@@ -351,14 +369,16 @@ jobs:
runs-on: windows-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Dependencies (Windows)
run: choco install ninja
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: install oneAPI (Windows)
uses: fortran-lang/setup-fortran@47809fdb6e637da656ce9ada436527b240c1287f # v1
id: setup-fortran
@@ -366,10 +386,6 @@ jobs:
compiler: intel
version: '2025.0'
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Configure (Windows)
shell: pwsh
env:
@@ -403,20 +419,23 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12 zlib1g-dev
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12 zlib1g-dev
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# CONFIGURE
- name: Configure
run: |
@@ -460,20 +479,23 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
@@ -513,20 +535,23 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
@@ -566,20 +591,23 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
@@ -614,20 +642,23 @@ jobs:
runs-on: ubuntu-latest
steps:
# SETUP
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install gcc-12 g++-12 gfortran-12
echo "CC=gcc-12" >> $GITHUB_ENV
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
+8 -10
View File
@@ -121,6 +121,13 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
#Useful for debugging
- name: Dump matrix context
run: echo '${{ toJSON(matrix) }}'
@@ -138,13 +145,8 @@ jobs:
run: brew install ninja curl
if: ${{ matrix.ostype == 'macos' }}
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -162,10 +164,6 @@ jobs:
echo "CC=cl.exe" >> $GITHUB_ENV
if: matrix.ostype == 'windows'
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
# CONFIGURE
- name: Configure
run: |
+8 -10
View File
@@ -138,6 +138,13 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
#Useful for debugging
- name: Dump matrix context
run: echo '${{ toJSON(matrix) }}'
@@ -155,13 +162,8 @@ jobs:
run: brew install ninja curl
if: ${{ matrix.ostype == 'macos' }}
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -198,10 +200,6 @@ jobs:
echo "CC=cl.exe" >> $GITHUB_ENV
if: matrix.ostype == 'windows'
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup jextract (FFM builds only)
if: ${{ inputs.force_java_implementation == 'ffm' }}
uses: ./.github/actions/setup-jextract
+3 -4
View File
@@ -239,18 +239,17 @@ jobs:
if: ${{ runner.os == 'Linux' }}
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
- name: Install Dependencies (macOS)
if: ${{ runner.os == 'macOS' }}
run: |
brew install ninja doxygen graphviz
brew install ninja graphviz
- name: Install Dependencies (Windows)
if: ${{ runner.os == 'Windows' }}
run: |
choco install ninja
choco install doxygen.install
choco install graphviz
- name: Enable Developer Command Prompt (Windows)
@@ -809,7 +808,7 @@ jobs:
continue-on-error: true
- name: Cache Maven dependencies
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-examples-${{ hashFiles('**/pom-examples.xml*') }}
+2 -1
View File
@@ -20,7 +20,7 @@ jobs:
Build_and_test:
# The type of runner that the job will run on
runs-on: windows-latest
runs-on: ${{ matrix.sys == 'clangarm64' && 'windows-11-arm' || 'windows-latest' }}
strategy:
matrix:
include:
@@ -28,6 +28,7 @@ jobs:
- { icon: '🟦', sys: mingw64 }
- { icon: '🟨', sys: ucrt64 }
- { icon: '🟧', sys: clang64 }
- { icon: '🟪', sys: clangarm64 }
name: ${{ matrix.icon }} MSYS2-${{ matrix.sys }}-${{ inputs.build_mode }}
defaults:
run:
+5 -5
View File
@@ -20,9 +20,9 @@ jobs:
name: "nvhpc ${{ inputs.build_mode }}"
runs-on: ubuntu-latest
env:
CUDAVERDOT: "13.0"
NVERDOT: "25.9"
NVERDASH: "25-9"
CUDAVERDOT: "13.1"
NVERDOT: "26.1"
NVERDASH: "26-1"
steps:
- name: Get Sources
@@ -36,13 +36,13 @@ jobs:
haskell: true
large-packages: true
tool-cache: false
swap-storage: true
swap-storage: true
- name: Install Dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install -y libaec-dev zlib1g-dev wget curl bzip2 flex bison cmake libzip-dev openssl build-essential
+1 -1
View File
@@ -44,7 +44,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and test on OpenBSD
uses: vmactions/openbsd-vm@00753f2835e62704570734312de6f212069dfef7 # v1
uses: vmactions/openbsd-vm@271a1ba62300483cfc58345ff9f425f1349a2cab # v1
with:
release: ${{ matrix.openbsd-version }}
usesh: true
+5 -20
View File
@@ -46,13 +46,8 @@ jobs:
- name: Install Dependencies (Windows)
run: choco install ninja
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -62,7 +57,7 @@ jobs:
- name: Setup MPI (${{ matrix.mpi }})
id: setup-mpi
uses: mpi4py/setup-mpi@8ac56ec7ab12f2dffdcf55ffaf50f1920ebcc004 # v1
uses: mpi4py/setup-mpi@dbbb80b116bea57fc1788daf7dbbf7ab3df3a0f1 # v1
with:
mpi: ${{ matrix.mpi }}
@@ -182,20 +177,15 @@ jobs:
sudo apt install gcc-12 g++-12 gfortran-12
sudo apt install libaec0 libaec-dev
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
- name: Setup MPI (${{ matrix.mpi }})
id: setup-mpi
uses: mpi4py/setup-mpi@8ac56ec7ab12f2dffdcf55ffaf50f1920ebcc004 # v1
uses: mpi4py/setup-mpi@dbbb80b116bea57fc1788daf7dbbf7ab3df3a0f1 # v1
with:
mpi: ${{ matrix.mpi }}
@@ -299,14 +289,9 @@ jobs:
- name: Install Dependencies (MacOS_latest)
run: brew install ninja
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Setup MPI (${{ matrix.mpi }})
id: setup-mpi
uses: mpi4py/setup-mpi@8ac56ec7ab12f2dffdcf55ffaf50f1920ebcc004 # v1
uses: mpi4py/setup-mpi@dbbb80b116bea57fc1788daf7dbbf7ab3df3a0f1 # v1
with:
mpi: ${{ matrix.mpi }}
+2 -12
View File
@@ -79,13 +79,8 @@ jobs:
echo "CC=${{ runner.workspace }}/openmpi/bin/mpicc" >> $GITHUB_ENV
echo "FC=${{ runner.workspace }}/openmpi/bin/mpif90" >> $GITHUB_ENV
- name: Install Doxygen
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -201,13 +196,8 @@ jobs:
echo "CC=${{ runner.workspace }}/mpich/bin/mpicc" >> $GITHUB_ENV
echo "FC=${{ runner.workspace }}/mpich/bin/mpif90" >> $GITHUB_ENV
- name: Install Doxygen
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
+1 -1
View File
@@ -33,7 +33,7 @@ jobs:
ls ${{ github.workspace }}/HDF5
- name: Setup AWS CLI
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 # v6.0.0
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+1 -1
View File
@@ -85,7 +85,7 @@ jobs:
- name: Setup AWS CLI
if: ${{ !inputs.dry_run }}
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 # v6.0.0
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+1 -1
View File
@@ -67,6 +67,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@45c373516f557556c15d420e3f5e0aa3d64366bc # v3.29.5
uses: github/codeql-action/upload-sarif@8ad4b6ec58178e8dbb44a62677274b3a5916baa9 # v3.29.5
with:
sarif_file: results.sarif
+10 -25
View File
@@ -44,16 +44,11 @@ jobs:
- name: Install Dependencies (Windows)
run: choco install ninja
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -165,13 +160,8 @@ jobs:
sudo apt-get update
sudo apt-get install ninja-build graphviz curl
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -266,11 +256,6 @@ jobs:
- name: Install Dependencies (MacOS_latest)
run: brew install ninja curl
- name: Install Dependencies
uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1
with:
version: "1.13.2"
- name: check clang version
shell: bash
run: |
@@ -278,7 +263,7 @@ jobs:
clang -v
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -394,10 +379,10 @@ jobs:
- name: Install Dependencies (Linux S3)
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen
sudo apt-get install ninja-build
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -520,7 +505,7 @@ jobs:
version: '2025.0'
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -629,7 +614,7 @@ jobs:
- name: Install Dependencies (Linux_intel)
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz curl
sudo apt-get install ninja-build graphviz curl
- name: add oneAPI to env
uses: fortran-lang/setup-fortran@47809fdb6e637da656ce9ada436527b240c1287f # v1
@@ -639,7 +624,7 @@ jobs:
version: '2025.0'
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
@@ -738,7 +723,7 @@ jobs:
- name: Install Dependencies (Linux_clang)
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz curl
sudo apt-get install ninja-build graphviz curl
- name: check clang version
shell: bash
@@ -747,7 +732,7 @@ jobs:
clang -v
- name: Install CMake
uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
with:
cmakeVersion: ${{ inputs.cmake_version }}
ninjaVersion: latest
+7 -4
View File
@@ -25,10 +25,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Doxygen
uses: ./.github/actions/setup-doxygen
- name: Install Linux Dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build doxygen graphviz
sudo apt-get install ninja-build graphviz
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
sudo apt install libaec0 libaec-dev
sudo apt install gcc-12 g++-12 gfortran-12
@@ -36,9 +42,6 @@ jobs:
echo "CXX=g++-12" >> $GITHUB_ENV
echo "FC=gfortran-12" >> $GITHUB_ENV
- name: Get Sources
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Configure
shell: bash
run: |
+2 -2
View File
@@ -16,12 +16,12 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Set up Python
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: '3.11' # Use specific version for consistency
- name: Cache pip dependencies
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+2 -2
View File
@@ -67,7 +67,7 @@ jobs:
# still test the connector against changes in HDF5.
- name: Restore ADIOS2 (${{ env.ADIOS2_COMMIT_SHORT }}) installation cache
id: cache-adios2
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: ${{ runner.workspace }}/adios2-${{ env.ADIOS2_COMMIT_SHORT }}-install
key: ${{ runner.os }}-${{ runner.arch }}-adios2-${{ env.ADIOS2_COMMIT }}-${{ inputs.build_mode }}-cache
@@ -97,7 +97,7 @@ jobs:
make -j2 install
- name: Cache ADIOS2 (${{ env.ADIOS2_COMMIT_SHORT }}) installation
uses: actions/cache/save@9255dc7a253b0ccc959486e2bca901246202afeb # v4
uses: actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
if: ${{ steps.cache-adios2.outputs.cache-hit != 'true' }}
with:
path: ${{ runner.workspace }}/adios2-${{ env.ADIOS2_COMMIT_SHORT }}-install
+1 -1
View File
@@ -78,7 +78,7 @@ jobs:
echo "LD_LIBRARY_PATH=${{ github.workspace }}/hdf5/build/bin" >> $GITHUB_ENV
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: ${{ matrix.python-version }}
+5
View File
@@ -20,3 +20,8 @@ src/H5config.h.in
/CMakeUserPresets.json
HDF5Examples/CMakeUserPresets.json
/CLAUDE.md
# Emacs temporary and lock files
*~
\#*\#
.\#*
-20
View File
@@ -58,8 +58,6 @@ include (ExternalProject)
set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO GIT TGZ)")
set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT TGZ)
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
set (ZLIB_USE_EXTERNAL ON CACHE BOOL "Use External Library Building for ZLIB else search" FORCE)
set (SZIP_USE_EXTERNAL ON CACHE BOOL "Use External Library Building for SZIP else search" FORCE)
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT")
if (HDF5_USE_ZLIB_NG)
set (ZLIB_URL ${ZLIBNG_GIT_URL} CACHE STRING "Path to zlib-ng git repository")
@@ -161,13 +159,6 @@ if (HDF5_ENABLE_ZLIB_SUPPORT)
endif ()
set (H5_ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR})
set (H5_ZLIB_INCLUDE_DIRS ${H5_ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR})
if (NOT WIN32) #windows has a list of names
# The FindZLIB.cmake module does not set an OUTPUT_NAME
# on the target. The target returned is: ZLIB::ZLIB
get_filename_component (libname ${ZLIB_LIBRARIES} NAME_WLE)
string (REGEX REPLACE "^lib" "" libname ${libname})
set_target_properties (ZLIB::ZLIB PROPERTIES OUTPUT_NAME ${libname})
endif ()
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ZLIB::ZLIB)
endif ()
else ()
@@ -229,17 +220,6 @@ if (HDF5_ENABLE_SZIP_SUPPORT)
set (HDF5_ENABLE_SZIP_SUPPORT OFF CACHE BOOL "" FORCE)
message (FATAL_ERROR "SZIP support in HDF5 was enabled and libaec was found, but no libsz compatibility library was found")
endif ()
if (NOT WIN32)
foreach(AEC_TARGET IN ITEMS libaec::sz libaec::aec)
string (REPLACE "libaec::" "" libname ${AEC_TARGET})
# Libaec::aec and libsz::sz are ALIAS targets if libaec is built via CMake
get_target_property(AEC_ALIASED ${AEC_TARGET} ALIASED_TARGET)
if(AEC_ALIASED)
set(AEC_TARGET ${AEC_ALIASED})
endif()
set_target_properties(${AEC_TARGET} PROPERTIES OUTPUT_NAME ${libname})
endforeach()
endif()
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} libaec::sz libaec::aec)
else ()
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES})
+3
View File
@@ -299,6 +299,9 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
else ()
set (CPACK_PACKAGE_VERSION "${HDF5_PACKAGE_VERSION}")
endif ()
if (CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "ARM64")
set (CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-winarm64")
endif ()
set (CPACK_PACKAGE_VERSION_MAJOR "${HDF5_PACKAGE_VERSION_MAJOR}")
set (CPACK_PACKAGE_VERSION_MINOR "${HDF5_PACKAGE_VERSION_MINOR}")
set (CPACK_PACKAGE_VERSION_PATCH "")
+1 -1
View File
@@ -1147,7 +1147,7 @@ if (HDF5_BUILD_DOC AND EXISTS "${HDF5_DOXYGEN_DIR}" AND IS_DIRECTORY "${HDF5_DOX
else ()
set (HDF5_DOXY_WARNINGS "NO")
endif ()
message (VERBOSE "Doxygen version: ${DOXYGEN_VERSION}")
message (STATUS "Found Doxygen version: ${DOXYGEN_VERSION}")
# Set the default directory for the Java sources for doxygen
if (Java_VERSION_STRING VERSION_GREATER_EQUAL "25.0.0")
+51
View File
@@ -346,6 +346,16 @@
"ci-StdShar"
]
},
{
"name": "ci-StdShar-MSVC-ARM64",
"description": "MSVC Standard Config for ARM64 (Release)",
"inherits": [
"ci-arm64-Release-MSVC",
"ci-CPP",
"ci-Java",
"ci-StdShar"
]
},
{
"name": "ci-StdShar-MSVC-FFM",
"description": "MSVC Standard Config for x64 with Java FFM (Requires Java 25+) (Release)",
@@ -664,6 +674,14 @@
"ci-x64-Release-MSVC"
]
},
{
"name": "ci-StdShar-MSVC-ARM64",
"description": "MSVC Standard Build for ARM64 (Release)",
"configurePreset": "ci-StdShar-MSVC-ARM64",
"inherits": [
"ci-arm64-Release-MSVC"
]
},
{
"name": "ci-StdShar-MSVC-FFM",
"description": "MSVC Standard Build for x64 with Java FFM (Requires Java 25+) (Release)",
@@ -938,6 +956,13 @@
"ci-x64-Release-MSVC"
]
},
{
"name": "ci-StdShar-MSVC-ARM64",
"configurePreset": "ci-StdShar-MSVC-ARM64",
"inherits": [
"ci-arm64-Release-MSVC"
]
},
{
"name": "ci-StdShar-MSVC-FFM",
"configurePreset": "ci-StdShar-MSVC-FFM",
@@ -1189,6 +1214,11 @@
"configurePreset": "ci-StdShar-MSVC",
"inherits": "ci-x64-Release-MSVC"
},
{
"name": "ci-StdShar-MSVC-ARM64",
"configurePreset": "ci-StdShar-MSVC-ARM64",
"inherits": "ci-arm64-Release-MSVC"
},
{
"name": "ci-StdShar-MSVC-FFM",
"configurePreset": "ci-StdShar-MSVC-FFM",
@@ -1332,6 +1362,27 @@
}
]
},
{
"name": "ci-StdShar-MSVC-ARM64",
"steps": [
{
"type": "configure",
"name": "ci-StdShar-MSVC-ARM64"
},
{
"type": "build",
"name": "ci-StdShar-MSVC-ARM64"
},
{
"type": "test",
"name": "ci-StdShar-MSVC-ARM64"
},
{
"type": "package",
"name": "ci-StdShar-MSVC-ARM64"
}
]
},
{
"name": "ci-StdShar-MSVC-FFM",
"steps": [
-3
View File
@@ -223,7 +223,6 @@ if (H5EXAMPLE_BUILD_TESTING)
add_test (NAME ${EXAMPLE_VARNAME}_${testname} COMMAND $<TARGET_FILE:${EXAMPLE_VARNAME}_${testname}>)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
else ()
add_test (
@@ -240,7 +239,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -257,7 +255,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
-3
View File
@@ -228,7 +228,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname}-ERR PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_${testname}
@@ -254,7 +253,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
set (last_test "${EXAMPLE_VARNAME}_${testname}")
@@ -313,7 +311,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
set (last_test "${EXAMPLE_VARNAME}_H5DUMP-${testname}")
endif ()
-7
View File
@@ -249,7 +249,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -266,7 +265,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -304,7 +302,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -335,7 +332,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -352,7 +348,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname}1 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_H5DUMP-${testname}2
@@ -368,7 +363,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname}2 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_H5DUMP-${testname}1
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -397,7 +391,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endmacro ()
-3
View File
@@ -370,7 +370,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -387,7 +386,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -416,7 +414,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endmacro ()
-2
View File
@@ -144,7 +144,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -161,7 +160,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
-8
View File
@@ -215,7 +215,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -232,7 +231,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -261,7 +259,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -279,7 +276,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -302,12 +298,10 @@ if (H5EXAMPLE_BUILD_TESTING)
add_test (NAME ${EXAMPLE_VARNAME}_h5ex_lite1 COMMAND $<TARGET_FILE:${EXAMPLE_VARNAME}_h5ex_lite1>)
set_tests_properties (${EXAMPLE_VARNAME}_h5ex_lite1 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_h5ex_lite-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (NAME ${EXAMPLE_VARNAME}_h5ex_lite2 COMMAND $<TARGET_FILE:${EXAMPLE_VARNAME}_h5ex_lite2>)
set_tests_properties (${EXAMPLE_VARNAME}_h5ex_lite2 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_h5ex_lite1
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
else ()
add_test (
@@ -324,7 +318,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_h5ex_lite1 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_h5ex_lite-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_h5ex_lite2
@@ -340,7 +333,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_h5ex_lite2 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_h5ex_lite1
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
-1
View File
@@ -101,7 +101,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_tutr_${testname} PROPERTIES
FIXTURES_REQUIRED clear_${EXAMPLE_VARNAME}_tutr
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_tutr_${testname} PROPERTIES DEPENDS ${last_test})
+1 -8
View File
@@ -145,14 +145,6 @@ if (${H5_LIBVER_DIR} GREATER 16)
if (H5EXAMPLE_BUILD_FORTRAN AND HDF5_PROVIDES_FORTRAN)
set (H5EXAMPLE_LINK_Fortran_LIBS ${H5EXAMPLE_HDF5_LINK_LIBS})
# Parallel IO usage requires MPI to be Linked and Included
if (H5_HAVE_PARALLEL)
set (H5EXAMPLE_LINK_Fortran_LIBS ${H5EXAMPLE_LINK_Fortran_LIBS} ${MPI_Fortran_LIBRARIES})
if (MPI_Fortran_LINK_FLAGS)
set (CMAKE_Fortran_EXE_LINKER_FLAGS "${MPI_Fortran_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
endif ()
endif ()
configure_file (${H5EXAMPLE_F90_SRC_DIR}/H5D/h5_version.h.in ${PROJECT_BINARY_DIR}/FORTRAN/H5D/h5_version.h @ONLY)
configure_file (${H5EXAMPLE_F90_SRC_DIR}/H5D/h5_version.h.in ${PROJECT_BINARY_DIR}/FORTRAN/H5G/h5_version.h @ONLY)
else ()
@@ -223,6 +215,7 @@ endif ()
# Build examples
#-----------------------------------------------------------------------------
add_subdirectory (C)
# Fortran MPI setup (find_package, link flags) is handled in FORTRAN/CMakeLists.txt
if (H5EXAMPLE_BUILD_FORTRAN AND HDF5_PROVIDES_FORTRAN)
add_subdirectory (FORTRAN)
endif ()
-1
View File
@@ -69,7 +69,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_cpp_ex_${testname} PROPERTIES
FIXTURES_REQUIRED clear_${EXAMPLE_VARNAME}_cpp_ex
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_cpp_ex_${testname} PROPERTIES DEPENDS ${last_test})
-1
View File
@@ -65,7 +65,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_cpp_ex_${testname} PROPERTIES
FIXTURES_REQUIRED clear_${EXAMPLE_VARNAME}_cpp_ex
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_cpp_ex_${testname} PROPERTIES DEPENDS ${last_test})
-1
View File
@@ -49,7 +49,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_cpp_ex_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_cpp_ex_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
if (last_test)
+7
View File
@@ -1,6 +1,13 @@
cmake_minimum_required (VERSION 3.26)
PROJECT (HDF5Examples_F90 Fortran)
# Parallel IO usage requires MPI to be linked and included
if (H5_HAVE_PARALLEL)
find_package(MPI REQUIRED COMPONENTS Fortran)
# Use imported target — carries include dirs, compile flags, and link flags transitively
list(APPEND H5EXAMPLE_LINK_Fortran_LIBS MPI::MPI_Fortran)
endif ()
#-----------------------------------------------------------------------------
# Build the Fortran Examples
#-----------------------------------------------------------------------------
-4
View File
@@ -263,9 +263,6 @@ if (H5EXAMPLE_BUILD_TESTING)
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-P "${H5EXAMPLE_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES
DEPENDS ${last_test}
@@ -287,7 +284,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES
DEPENDS ${last_test}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
set (last_test "${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}")
endif ()
-14
View File
@@ -198,7 +198,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname}-clean PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
else ()
add_test (
@@ -213,9 +212,6 @@ if (H5EXAMPLE_BUILD_TESTING)
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-P "${H5EXAMPLE_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${last_test})
endif ()
@@ -235,7 +231,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES
DEPENDS ${last_test}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
set (last_test "${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}")
endif ()
@@ -269,9 +264,6 @@ if (H5EXAMPLE_BUILD_TESTING)
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-P "${H5EXAMPLE_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${last_test})
endif ()
@@ -291,7 +283,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES
DEPENDS ${last_test}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
set (last_test "${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}")
endif ()
@@ -315,7 +306,6 @@ if (H5EXAMPLE_BUILD_TESTING)
add_test (NAME ${EXAMPLE_VARNAME}_f90_${testname} COMMAND $<TARGET_FILE:${EXAMPLE_VARNAME}_f90_${testname}>)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_f90_${testname}-clean
@@ -352,7 +342,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (HDF5_PROVIDES_TOOLS)
add_test (
@@ -369,7 +358,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}1 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}2
@@ -385,7 +373,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}2 PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}1
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
endif ()
endif ()
@@ -414,7 +401,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_f90_${testname}-clean
@@ -30,7 +30,6 @@ foreach (example_name ${examples})
"$<$<BOOL:${${EXAMPLE_VARNAME}_USE_114_API}>:-DH5_USE_114_API>"
"$<$<BOOL:${${EXAMPLE_VARNAME}_USE_200_API}>:-DH5_USE_200_API>"
)
target_include_directories (${EXAMPLE_VARNAME}_f90_${example_name} PUBLIC ${MPI_Fortran_INCLUDE_DIRS})
target_link_libraries (${EXAMPLE_VARNAME}_f90_${example_name} ${H5EXAMPLE_LINK_Fortran_LIBS})
set_target_properties (${EXAMPLE_VARNAME}_f90_${example_name} PROPERTIES LINKER_LANGUAGE Fortran)
endforeach ()
-6
View File
@@ -312,7 +312,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname}-clean PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
else ()
add_test (
@@ -327,9 +326,6 @@ if (H5EXAMPLE_BUILD_TESTING)
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-P "${H5EXAMPLE_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${last_test})
endif ()
@@ -349,7 +345,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES
DEPENDS ${last_test}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
set (last_test "${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}")
endif ()
@@ -384,7 +379,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}-clearall
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
add_test (
NAME ${EXAMPLE_VARNAME}_f90_${testname}-clean
-5
View File
@@ -171,7 +171,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname}-clean PROPERTIES
DEPENDS ${EXAMPLE_VARNAME}_f90_${testname}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
else ()
add_test (
@@ -186,9 +185,6 @@ if (H5EXAMPLE_BUILD_TESTING)
-D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
-P "${H5EXAMPLE_RESOURCES_DIR}/runTest.cmake"
)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_f90_${testname} PROPERTIES DEPENDS ${last_test})
endif ()
@@ -209,7 +205,6 @@ if (H5EXAMPLE_BUILD_TESTING)
)
set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-f90_${testname} PROPERTIES
DEPENDS ${last_test}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
set (last_test "${EXAMPLE_VARNAME}_H5DUMP-f90_${testname}")
endif ()
-1
View File
@@ -106,7 +106,6 @@ if (H5EXAMPLE_BUILD_TESTING)
endif ()
set_tests_properties (${EXAMPLE_VARNAME}_f90_tutr_${testname} PROPERTIES
FIXTURES_REQUIRED clear_${EXAMPLE_VARNAME}_f90_tutr
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if (last_test)
set_tests_properties (${EXAMPLE_VARNAME}_f90_tutr_${testname} PROPERTIES DEPENDS ${last_test})
@@ -42,7 +42,6 @@ elseif(MINGW)
set (CMAKE_CROSSCOMPILING_EMULATOR wine)
include_directories(/usr/${TOOLCHAIN_PREFIX}/include)
set (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS On CACHE BOOL "Export windows symbols")
else ()
set (CMAKE_SYSTEM_NAME Linux)
@@ -25,8 +25,6 @@ set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set (CMAKE_CROSSCOMPILING_EMULATOR wine64)
set (CROSSCOMPILING_PATH "WINEPATH=/usr/${TOOLCHAIN_PREFIX}/sys-root/mingw/bin/")
set (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS On CACHE BOOL "Export windows symbols")
+43
View File
@@ -478,6 +478,47 @@ sub create_public ($) {
close HEADER;
}
##############################################################################
# Create the generated CMake file for Doxygen PREDEFINED macros
#
sub create_doxygen_cmake ($) {
my $prefix = shift; # Get the prefix for the source file (e.g., "src/")
my $file = "H5version_doxygen.cmake"; # Name of file to generate
# Output to doxygen directory (relative to src/)
my $doxygen_dir = $prefix;
$doxygen_dir =~ s/src\/?$/doxygen\//; # Replace "src/" with "doxygen/"
# Create doxygen directory if it doesn't exist
if ($doxygen_dir ne "" && ! -d $doxygen_dir) {
mkdir $doxygen_dir or die "unable to create directory: $doxygen_dir";
}
# Open new cmake file in doxygen directory
open CMAKE, ">${doxygen_dir}${file}" or die "unable to create doxygen cmake file: ${doxygen_dir}${file}";
# Create file contents
print CMAKE "# Generated automatically by bin/make_vers -- do not edit\n";
print CMAKE "# Add new versioned symbols to H5vers.txt file\n";
print CMAKE "#\n";
print CMAKE "# Doxygen PREDEFINED entries for versioned APIs\n";
print CMAKE "# These macros tell Doxygen which version each API name maps to,\n";
print CMAKE "# preventing \"multiple \@param documentation sections\" warnings\n";
print CMAKE "\n";
print CMAKE "list (APPEND _doxygen_predefined_entries\n";
# Add function version macros (sorted for consistency)
for my $name (sort keys %functions) {
my $vers = $functions{$name};
print CMAKE " \"$name=$name$vers\"\n";
}
print CMAKE ")\n";
# Close cmake file
close CMAKE;
}
##############################################################################
# Read symbol version file (given as command-line argument) in and process it
# into internal data structures, then create header files.
@@ -508,5 +549,7 @@ for $file (@ARGV) {
# Create header files
print "Generating 'H5version.h'\n";
create_public($prefix);
print "Generating 'doxygen/H5version_doxygen.cmake'\n";
create_doxygen_cmake($prefix);
}
+1 -1
View File
@@ -188,7 +188,7 @@ if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
endif ()
set (_PKG_CONFIG_EXTRA_CFLAGS)
set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_LIBS "-l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
set (_PKG_CONFIG_LIBS_PRIVATE)
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
-1
View File
@@ -33,7 +33,6 @@ else ()
endif ()
set_tests_properties (CPP_testhdf5 PROPERTIES
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if ("CPP_testhdf5" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (CPP_testhdf5 PROPERTIES DISABLED true)
-1
View File
@@ -37,7 +37,6 @@ macro (ADD_VFD_TEST vfdname resultcode)
)
set_tests_properties (CPP_VFD-${vfdname}-cpp_testhdf5 PROPERTIES
TIMEOUT ${CTEST_SHORT_TIMEOUT}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if ("CPP_VFD-${vfdname}-cpp_testhdf5" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (CPP_VFD-${vfdname}-cpp_testhdf5 PROPERTIES DISABLED true)
+5 -11
View File
@@ -735,7 +735,7 @@ if (HDF5_BUILD_FORTRAN)
# Get the max decimal precision in C, checking both long double and
# __float128 (if available)
#-----------------------------------------------------------------------------
if (NOT CMAKE_CROSSCOMPILING)
if (NOT CMAKE_CROSSCOMPILING OR (CMAKE_CROSSCOMPILING AND CMAKE_CROSSCOMPILING_EMULATOR))
#-----------------------------------------------------------------------------
# The provided CMake C macros don't provide a general compile/run function
# so this one is used.
@@ -747,16 +747,10 @@ if (HDF5_BUILD_FORTRAN)
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler1.c
${SOURCE_CODE}
)
if (CMAKE_VERSION VERSION_LESS 3.25)
set (_RUN_OUTPUT_VARIABLE "RUN_OUTPUT_VARIABLE")
else ()
set (_RUN_OUTPUT_VARIABLE "RUN_OUTPUT_STDOUT_VARIABLE")
endif ()
TRY_RUN (RUN_RESULT_VAR COMPILE_RESULT_VAR
${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler1.c
try_run (RUN_RESULT_VAR COMPILE_RESULT_VAR
SOURCES ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler1.c
COMPILE_OUTPUT_VARIABLE COMPILEOUT
${_RUN_OUTPUT_VARIABLE} OUTPUT_VAR
RUN_OUTPUT_STDOUT_VARIABLE OUTPUT_VAR
)
set (${RETURN_OUTPUT_VAR} ${OUTPUT_VAR})
@@ -844,7 +838,7 @@ endif()
#-----------------------------------------------------------------------------
macro (H5ConversionTests TEST def msg)
if (NOT DEFINED ${TEST})
if (NOT CMAKE_CROSSCOMPILING)
if (NOT CMAKE_CROSSCOMPILING OR (CMAKE_CROSSCOMPILING AND CMAKE_CROSSCOMPILING_EMULATOR))
# Build and run the test code if not cross-compiling
TRY_RUN (${TEST}_RUN ${TEST}_COMPILE
${CMAKE_BINARY_DIR}
+286
View File
@@ -0,0 +1,286 @@
#
# Copyright by The HDF Group.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the LICENSE file, which can be found at the root of the source code
# distribution tree, or in https://www.hdfgroup.org/licenses.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#
#
# This file provides functionality for creating pkg-config files for HDF5.
#
# Function to inspect a CMake target or library name/path and extract any
# available information needed when creating an HDF5 pkg-config file that
# makes use of that library.
#
# NOTE: Currently, this function assumes that libraries don't have pkg-config
# support and so returns flags to be added to the "Libs" or "Libs.private"
# field (as determined by the caller) and "Cflags" field in the pkg-config
# file. Ideally, pkg_check_modules() should be used to check if a particular
# library has pkg-config support so that the library can be added to the
# "Requires" or "Requires.private" field instead, as needed. Some additional
# logic will be needed to determine the pkg-config module name from the CMake
# target name or library name.
#
# Input variables:
#
# - library
# Specifies the CMake target name or library name/path to inspect.
#
# - _pkgconfig_libs_outvar
# Specifies the name of the CMake variable which will be populated
# with the flags for the library that should be added to the "Libs"
# or "Libs.private" field (as determined by the caller) of a pkg-config
# file. After processing the library, the variable pointed to by
# _pkgconfig_libs_outvar will be a CMake list of flags.
#
# - _pkgconfig_extra_cflags_outvar
# Specifies the name of the CMake variable which will be populated
# with the flags for the library that should be added to the
# "Cflags" field of a pkg-config file. After processing the library,
# the variable pointed to by _pkgconfig_extra_cflags_outvar will be
# a CMake list of flags.
#
# - _lib_skipped_outvar
# Specifies the name of the CMake variable which will be set to TRUE
# if a library was skipped for processing for some reason and FALSE
# otherwise.
#
# Output variables:
#
# None
#
function (extract_lib_pkgconfig_info
library
_pkgconfig_libs_outvar
_pkgconfig_extra_cflags_outvar
_lib_skipped_outvar)
# Initialize outputs to known values
unset (${_pkgconfig_libs_outvar} PARENT_SCOPE)
unset (${_pkgconfig_extra_cflags_outvar} PARENT_SCOPE)
set (${_lib_skipped_outvar} FALSE PARENT_SCOPE)
unset (library_deps_list)
unset (library_cflags_list)
# Get current project build configuration type in case we need to map
# to an imported target's config-specific properties. To be safe for
# now, avoid processing libraries when using a multi-config generator
# with more than one configuration. pkg-config files are currently
# generated at configure time, but the build configuration type is
# determined at build time. If mapping between the current build
# configuration type and a list of imported library locations (based
# on the current build configuration type) is needed later on, this
# function will be unable to properly do so.
get_cmake_property (is_multiconfig_gen GENERATOR_IS_MULTI_CONFIG)
if (is_multiconfig_gen)
list (LENGTH CMAKE_CONFIGURATION_TYPES num_configs)
if (num_configs GREATER "1")
message (AUTHOR_WARNING "Cannot generate pkg-config files correctly for multi-config generators")
set (${_lib_skipped_outvar} TRUE PARENT_SCOPE)
return ()
elseif (num_configs EQUAL "1")
set (project_build_config "${CMAKE_CONFIGURATION_TYPES}")
else ()
set (project_build_config Release)
endif ()
else ()
set (project_build_config "${CMAKE_BUILD_TYPE}")
endif ()
if (project_build_config STREQUAL "Developer")
set (project_build_config "Debug")
endif ()
# If this is a regular library, add it to the list of libraries for the
# Libs.private field. Otherwise, do special processing for library targets.
if (NOT TARGET ${library})
# Avoid generator expressions related to flags for now. A more complete
# solution will be needed in order to correctly evaluate these.
string (GENEX_STRIP "${library}" library_genex_stripped)
if (NOT "${library}" STREQUAL "${library_genex_stripped}")
message (AUTHOR_WARNING "Not processing CMake generator expression for library ${library} for pkg-config files")
set (${_lib_skipped_outvar} TRUE PARENT_SCOPE)
return ()
endif ()
if (IS_ABSOLUTE "${library}" OR "${library}" MATCHES "^-")
list (APPEND library_deps_list "${library}")
else ()
list (APPEND library_deps_list "-l${library}")
endif ()
set (${_pkgconfig_libs_outvar} "${library_deps_list}" PARENT_SCOPE)
return ()
endif ()
# Retrieve INTERFACE properties from the target which may be needed in
# "Cflags" for compiling
get_target_property (lib_interface_include_dirs ${library} INTERFACE_INCLUDE_DIRECTORIES)
if (lib_interface_include_dirs)
foreach (include_dir ${lib_interface_include_dirs})
# Avoid generator expressions related to flags for now. A more complete
# solution will be needed in order to correctly evaluate these.
string (GENEX_STRIP "${include_dir}" include_dir_genex_stripped)
if (NOT "${include_dir}" STREQUAL "${include_dir_genex_stripped}")
message (AUTHOR_WARNING "Not processing CMake generator expression ${include_dir} for library ${library} for pkg-config files")
continue ()
endif ()
if ("${include_dir}" MATCHES "^-")
list (APPEND library_cflags_list "${include_dir}")
else ()
list (APPEND library_cflags_list "-I${include_dir}")
endif ()
endforeach ()
endif ()
get_target_property (lib_interface_compile_opts ${library} INTERFACE_COMPILE_OPTIONS)
if (lib_interface_compile_opts)
foreach (compile_opt ${lib_interface_compile_opts})
# Avoid generator expressions related to flags for now. A more complete
# solution will be needed in order to correctly evaluate these.
string (GENEX_STRIP "${compile_opt}" compile_opt_genex_stripped)
if (NOT "${compile_opt}" STREQUAL "${compile_opt_genex_stripped}")
message (AUTHOR_WARNING "Not processing CMake generator expression ${compile_opt} for library ${library} for pkg-config files")
continue ()
endif ()
list (APPEND library_cflags_list "${compile_opt}")
endforeach ()
endif ()
get_target_property (lib_interface_compile_defs ${library} INTERFACE_COMPILE_DEFINITIONS)
if (lib_interface_compile_defs)
foreach (compile_def ${lib_interface_compile_defs})
# Avoid generator expressions related to flags for now. A more complete
# solution will be needed in order to correctly evaluate these.
string (GENEX_STRIP "${compile_def}" compile_def_genex_stripped)
if (NOT "${compile_def}" STREQUAL "${compile_def_genex_stripped}")
message (AUTHOR_WARNING "Not processing CMake generator expression ${compile_def} for library ${library} for pkg-config files")
continue ()
endif ()
list (APPEND library_cflags_list "${compile_def}")
endforeach ()
endif ()
# Determine appropriate flags for linking against library
unset (lib_name)
get_target_property (lib_is_imported ${library} IMPORTED)
get_target_property (lib_type ${library} TYPE)
if (lib_is_imported AND NOT lib_type STREQUAL "INTERFACE_LIBRARY")
unset (lib_path)
# Find a path for the library and process it into a library name for linking
# against. First, check for a particular IMPORTED_LOCATION_<CONFIG> property
# and use it if set. Some mapping between the library's imported configurations
# and the project's current build configuration type may be needed. If that
# property isn't set, check for the IMPORTED_LOCATION property and use it if
# set. If neither are set, check for the LOCATION property and use it if set.
get_target_property (lib_imported_configs ${library} IMPORTED_CONFIGURATIONS)
if (lib_imported_configs)
list (LENGTH lib_imported_configs num_configs)
if (num_configs EQUAL "1")
get_target_property (lib_path ${library} IMPORTED_LOCATION_${lib_imported_configs})
elseif (num_configs GREATER "1")
# Find a suitable configuration of the imported library that matches this
# project's current build configuration type, if available.
string (TOUPPER "${project_build_config}" project_build_config_upper)
get_target_property (lib_path ${library} IMPORTED_LOCATION_${project_build_config_upper})
if (NOT lib_path)
get_target_property (lib_path ${library} IMPORTED_LOCATION_${project_build_config})
endif ()
endif () # Assume 0 configurations is a problem with the library's configuration; move on
endif ()
if (NOT lib_path)
get_target_property (lib_path ${library} IMPORTED_LOCATION)
endif ()
if (NOT lib_path)
get_target_property (lib_path ${library} LOCATION)
endif ()
# Get base library name without extensions
if (lib_path)
# Avoid generator expressions in library locations for now. A more complete
# solution will be needed in order to correctly evaluate these.
string (GENEX_STRIP "${lib_path}" lib_path_genex_stripped)
if (NOT "${lib_path}" STREQUAL "${lib_path_genex_stripped}")
message (AUTHOR_WARNING "Not processing CMake generator expression ${lib_path} for library ${library} for pkg-config files")
set (${_lib_skipped_outvar} TRUE PARENT_SCOPE)
return ()
endif ()
cmake_path (GET lib_path STEM lib_name)
endif ()
endif ()
# If a library name couldn't be determined from the LOCATION or IMPORTED_LOCATION(_...)
# try OUTPUT_NAME. If the target isn't an imported target, but has an OUTPUT_NAME
# set for it, it's likely an internal target for a filter plugin or similar which
# will be built at library build time. This is a fragile assumption, but should
# work for now.
if (NOT lib_name AND NOT lib_type STREQUAL "INTERFACE_LIBRARY")
get_target_property (lib_outname ${library} OUTPUT_NAME)
if (lib_outname)
# Avoid generator expressions in library names for now. A more complete
# solution will be needed in order to correctly evaluate these.
string (GENEX_STRIP "${lib_outname}" lib_outname_genex_stripped)
if (NOT "${lib_outname}" STREQUAL "${lib_outname_genex_stripped}")
message (AUTHOR_WARNING "Not processing CMake generator expression ${lib_outname} for library ${library} for pkg-config files")
set (${_lib_skipped_outvar} TRUE PARENT_SCOPE)
return ()
endif ()
cmake_path (GET lib_outname STEM lib_name)
endif ()
endif ()
if (lib_name)
string (REGEX REPLACE "^lib" "" lib_name "${lib_name}")
list (APPEND library_deps_list "-l${lib_name}")
else ()
# Issue a warning for non-interface imported targets that we couldn't obtain a
# valid name for, as the library can't be processed at this point. Currently,
# it's assumed that non-imported targets without a valid name of some sort won't
# be needed in a pkg-config file; they are silently skipped.
if (lib_is_imported AND NOT lib_type STREQUAL "INTERFACE_LIBRARY")
message (AUTHOR_WARNING "Couldn't obtain a valid name for library ${library} for pkg-config files")
endif ()
# Targets of type INTERFACE_LIBRARY are still processed for their compile
# definitions and link dependencies.
if (NOT lib_type STREQUAL "INTERFACE_LIBRARY")
set (${_lib_skipped_outvar} TRUE PARENT_SCOPE)
return ()
endif ()
endif ()
# Process any transitive link dependencies
get_target_property (lib_link_libraries ${library} INTERFACE_LINK_LIBRARIES)
if (lib_link_libraries)
unset (lib_dep_flags)
unset (lib_cflags)
unset (lib_skipped)
foreach (lib_dep ${lib_link_libraries})
extract_lib_pkgconfig_info (${lib_dep} lib_dep_flags lib_cflags lib_skipped)
if (NOT lib_skipped)
if (lib_dep_flags)
list (APPEND library_deps_list "${lib_dep_flags}")
endif ()
if (lib_cflags)
list (APPEND library_cflags_list "${lib_cflags}")
endif ()
endif ()
endforeach ()
endif ()
# Propagate variables upward in scope
set (${_pkgconfig_libs_outvar} "${library_deps_list}" PARENT_SCOPE)
set (${_pkgconfig_extra_cflags_outvar} "${library_cflags_list}" PARENT_SCOPE)
endfunction ()
+13 -19
View File
@@ -51,22 +51,16 @@ macro (FORTRAN_RUN FUNCTION_NAME SOURCE_CODE RUN_RESULT_VAR1 COMPILE_RESULT_VAR1
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler1.f90
"${SOURCE_CODE}"
)
if (CMAKE_VERSION VERSION_LESS 3.25)
set (_RUN_OUTPUT_VARIABLE "RUN_OUTPUT_VARIABLE")
else ()
set (_RUN_OUTPUT_VARIABLE "RUN_OUTPUT_STDOUT_VARIABLE")
endif ()
if (${FUNCTION_NAME} STREQUAL "SIZEOF NATIVE KINDs")
set (TMP_CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
else ()
set (TMP_CMAKE_Fortran_FLAGS "")
endif ()
TRY_RUN (RUN_RESULT_VAR COMPILE_RESULT_VAR
${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler1.f90
try_run (RUN_RESULT_VAR COMPILE_RESULT_VAR
SOURCES ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler1.f90
CMAKE_FLAGS "${TMP_CMAKE_Fortran_FLAGS}"
LINK_LIBRARIES "${HDF5_REQUIRED_LIBRARIES}"
${_RUN_OUTPUT_VARIABLE} OUTPUT_VAR
RUN_OUTPUT_STDOUT_VARIABLE OUTPUT_VAR
)
set (${RETURN_OUTPUT_VAR} ${OUTPUT_VAR})
@@ -158,7 +152,7 @@ endif ()
#-----------------------------------------------------------------------------
# Determine the available KINDs for REALs and INTEGERs
#-----------------------------------------------------------------------------
if (NOT CMAKE_CROSSCOMPILING)
if (NOT CMAKE_CROSSCOMPILING OR (CMAKE_CROSSCOMPILING AND CMAKE_CROSSCOMPILING_EMULATOR))
if (${HAVE_ISO_FORTRAN_ENV})
READ_SOURCE ("PROGRAM FC08_AVAIL_KINDS" "END PROGRAM FC08_AVAIL_KINDS" SOURCE_CODE)
else ()
@@ -201,21 +195,21 @@ if (NOT CMAKE_CROSSCOMPILING)
endif ()
set (${HDF_PREFIX}_PAC_FC_MAX_REAL_PRECISION ${pac_fc_max_real_precision} CACHE INTERNAL "Maximum decimal precision for REALs in Fortran")
set (PAC_FC_ALL_INTEGER_KINDS "\{${pac_validIntKinds}\}")
set (PAC_FC_ALL_REAL_KINDS "\{${pac_validRealKinds}\}")
set (PAC_FC_ALL_INTEGER_KINDS "\{${pac_validIntKinds}\}" CACHE INTERNAL "Find available INTEGER KINDs for Fortran")
set (PAC_FC_ALL_REAL_KINDS "\{${pac_validRealKinds}\}" CACHE INTERNAL "Find available REAL KINDs for Fortran")
list (GET PROG_OUTPUT 3 NUM_IKIND)
list (GET PROG_OUTPUT 4 NUM_RKIND)
set (PAC_FORTRAN_NUM_INTEGER_KINDS "${NUM_IKIND}")
set (PAC_FORTRAN_NUM_REAL_KINDS "${NUM_RKIND}")
set (PAC_FORTRAN_NUM_INTEGER_KINDS "${NUM_IKIND}" CACHE INTERNAL "Number of valid integer kinds for Fortran")
set (PAC_FORTRAN_NUM_REAL_KINDS "${NUM_RKIND}" CACHE INTERNAL "Number of valid real kinds for Fortran")
set (${HDF_PREFIX}_H5CONFIG_F_NUM_IKIND "INTEGER, PARAMETER :: num_ikinds = ${NUM_IKIND}")
set (${HDF_PREFIX}_H5CONFIG_F_IKIND "INTEGER, DIMENSION(1:num_ikinds) :: ikind = (/${pac_validIntKinds}/)")
if (${HAVE_ISO_FORTRAN_ENV})
list (GET PROG_OUTPUT 5 NUM_LKIND)
set (PAC_FORTRAN_NUM_LOGICAL_KINDS "${NUM_LKIND}")
set (PAC_FORTRAN_NUM_LOGICAL_KINDS "${NUM_LKIND}" CACHE INTERNAL "Find available LOGICAL KINDs for Fortran")
list (GET PROG_OUTPUT 6 pac_validLogicalKinds)
# If the list is empty then something went wrong.
@@ -223,7 +217,7 @@ if (NOT CMAKE_CROSSCOMPILING)
message (FATAL_ERROR "Failed to find available LOGICAL KINDs for Fortran")
endif ()
set (PAC_FC_ALL_LOGICAL_KINDS "\{${pac_validLogicalKinds}\}")
set (PAC_FC_ALL_LOGICAL_KINDS "\{${pac_validLogicalKinds}\}" CACHE INTERNAL "LOGICAL KINDS FOUND for Fortran")
message (STATUS "....LOGICAL KINDS FOUND ${PAC_FC_ALL_LOGICAL_KINDS}")
endif ()
else ()
@@ -297,7 +291,7 @@ endif ()
# **********
# INTEGERS
# **********
if (NOT CMAKE_CROSSCOMPILING)
if (NOT CMAKE_CROSSCOMPILING OR (CMAKE_CROSSCOMPILING AND CMAKE_CROSSCOMPILING_EMULATOR))
string (REGEX REPLACE "," ";" VAR "${pac_validIntKinds}")
foreach (KIND ${VAR})
@@ -343,7 +337,7 @@ message (VERBOSE "....FOUND SIZEOF for INTEGER KINDs ${PAC_FC_ALL_INTEGER_KINDS_
# **********
# REALS
# **********
if (NOT CMAKE_CROSSCOMPILING)
if (NOT CMAKE_CROSSCOMPILING OR (CMAKE_CROSSCOMPILING AND CMAKE_CROSSCOMPILING_EMULATOR))
string (REGEX REPLACE "," ";" VAR "${pac_validRealKinds}")
#find the maximum kind of the real
@@ -402,7 +396,7 @@ list (GET VAR ${_LEN} max_real_fortran_sizeof)
#-----------------------------------------------------------------------------
# Find sizeof of native kinds
#-----------------------------------------------------------------------------
if (NOT CMAKE_CROSSCOMPILING)
if (NOT CMAKE_CROSSCOMPILING OR (CMAKE_CROSSCOMPILING AND CMAKE_CROSSCOMPILING_EMULATOR))
set (PROG_SRC3
"
PROGRAM main
+65
View File
@@ -167,6 +167,28 @@
"ci-MSVC"
]
},
{
"name": "ci-arm64-Debug-MSVC",
"description": "MSVC for ARM64 (Debug)",
"hidden": true,
"inherits": [
"ci-base",
"ci-arm64",
"ci-Debug",
"ci-MSVC"
]
},
{
"name": "ci-arm64-Release-MSVC",
"description": "MSVC for ARM64 (Release)",
"hidden": true,
"inherits": [
"ci-base",
"ci-arm64",
"ci-Release",
"ci-MSVC"
]
},
{
"name": "ci-x64-Debug-Clang",
"description": "Clang/LLVM for x64 (Debug)",
@@ -350,6 +372,24 @@
],
"configuration": "RelWithDebInfo"
},
{
"name": "ci-arm64-Debug-MSVC",
"configurePreset": "ci-arm64-Debug-MSVC",
"hidden": true,
"inherits": [
"ci-base"
],
"configuration": "Debug"
},
{
"name": "ci-arm64-Release-MSVC",
"configurePreset": "ci-arm64-Release-MSVC",
"hidden": true,
"inherits": [
"ci-base"
],
"configuration": "RelWithDebInfo"
},
{
"name": "ci-x64-Debug-Clang",
"configurePreset": "ci-x64-Debug-Clang",
@@ -507,6 +547,24 @@
],
"configuration": "RelWithDebInfo"
},
{
"name": "ci-arm64-Debug-MSVC",
"configurePreset": "ci-arm64-Debug-MSVC",
"hidden": true,
"inherits": [
"ci-base"
],
"configuration": "Debug"
},
{
"name": "ci-arm64-Release-MSVC",
"configurePreset": "ci-arm64-Release-MSVC",
"hidden": true,
"inherits": [
"ci-base"
],
"configuration": "RelWithDebInfo"
},
{
"name": "ci-x64-Debug-Clang",
"configurePreset": "ci-x64-Debug-Clang",
@@ -642,6 +700,13 @@
"inherits": "ci-base",
"configurations": ["RelWithDebInfo"]
},
{
"name": "ci-arm64-Release-MSVC",
"configurePreset": "ci-arm64-Release-MSVC",
"hidden": true,
"inherits": "ci-base",
"configurations": ["RelWithDebInfo"]
},
{
"name": "ci-x64-Release-Clang",
"configurePreset": "ci-x64-Release-Clang",
+10 -4
View File
@@ -12,19 +12,25 @@
# CMake settings for HDF5 Developer mode builds
# Set CMake C++ flags based off of Debug build flags
# Set initial CMake Developer build C flags based off of Debug build flags
set (CMAKE_C_FLAGS_DEVELOPER "${CMAKE_C_FLAGS_DEBUG}" CACHE STRING
"Flags used by the C compiler during developer builds." FORCE
)
# Set initial CMake Developer build C++ flags based off of Debug build flags
set (CMAKE_CXX_FLAGS_DEVELOPER ${CMAKE_CXX_FLAGS_DEBUG} CACHE STRING
"Flags used by the C++ compiler during developer builds." FORCE
)
# Set CMake binary linker flags based off of Debug binary linker flags
# Set initial CMake Developer build binary linker flags based off of Debug
# binary linker flags
set (CMAKE_EXE_LINKER_FLAGS_DEVELOPER ${CMAKE_EXE_LINKER_FLAGS_DEBUG}
CACHE STRING "Flags used for linking binaries during developer builds."
FORCE
)
# Set CMake shared library linker flags based off of Debug shared library
# linker flags
# Set initial CMake Developer build shared library linker flags based off
# of Debug shared library linker flags
set (CMAKE_SHARED_LINKER_FLAGS_DEVELOPER ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}
CACHE STRING "Flags used by the shared libraries linker during developer builds."
FORCE
+7 -3
View File
@@ -179,9 +179,13 @@ target_include_directories(${ZLIB_LIB_TARGET}
PRIVATE "${CMAKE_BINARY_DIR}"
PUBLIC "${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}"
)
if (MSVC AND CMAKE_CL_64)
set_target_properties (${ZLIB_LIB_TARGET} PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
endif ()
if (MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8)
if (CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "ARM64")
set_target_properties(${ZLIB_LIB_TARGET} PROPERTIES STATIC_LIBRARY_FLAGS "/machine:ARM64")
else()
set_target_properties(${ZLIB_LIB_TARGET} PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
endif()
endif()
set_target_properties(${ZLIB_LIB_TARGET} PROPERTIES
PUBLIC_HEADER ""
LINKER_LANGUAGE C
+7 -3
View File
@@ -246,9 +246,13 @@ target_include_directories(${ZLIB_LIB_TARGET}
PRIVATE "${CMAKE_BINARY_DIR}"
PUBLIC "${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}"
)
if (MSVC AND CMAKE_CL_64)
set_target_properties (${ZLIB_LIB_TARGET} PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
endif ()
if (MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8)
if (CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "ARM64")
set_target_properties(${ZLIB_LIB_TARGET} PROPERTIES STATIC_LIBRARY_FLAGS "/machine:ARM64")
else()
set_target_properties(${ZLIB_LIB_TARGET} PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
endif()
endif()
set_target_properties(${ZLIB_LIB_TARGET} PROPERTIES
PUBLIC_HEADER ""
LINKER_LANGUAGE C
+3
View File
@@ -54,6 +54,9 @@ set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT TGZ)
########################
# compression options
########################
set (ZLIB_USE_EXTERNAL ON CACHE BOOL "Use External Library Building for ZLIB" FORCE)
set (SZIP_USE_EXTERNAL ON CACHE BOOL "Use External Library Building for SZIP" FORCE)
set (HDF5_USE_ZLIB_STATIC ON CACHE BOOL "Use static zlib library" FORCE)
set (HDF5_USE_LIBAEC_STATIC ON CACHE BOOL "Use static AEC library" FORCE)
-8
View File
@@ -334,8 +334,6 @@ function(target_code_coverage TARGET_NAME)
# this target serially.
add_custom_target (
ccov-run-${target_code_coverage_COVERAGE_TARGET_NAME}
COMMAND ${CMAKE_COMMAND}
ARGS -E env ${CROSSCOMPILING_PATH}
COMMAND
${CMAKE_COMMAND} -E env
${target_code_coverage_PRE_ARGS}
@@ -417,8 +415,6 @@ function(target_code_coverage TARGET_NAME)
# Run the executable, generating coverage information
add_custom_target (
ccov-run-${target_code_coverage_COVERAGE_TARGET_NAME}
COMMAND ${CMAKE_COMMAND}
ARGS -E env ${CROSSCOMPILING_PATH}
COMMAND
${target_code_coverage_PRE_ARGS}
$<TARGET_FILE:${TARGET_NAME}> ${target_code_coverage_ARGS}
@@ -447,8 +443,6 @@ function(target_code_coverage TARGET_NAME)
ccov-capture-${target_code_coverage_COVERAGE_TARGET_NAME}
COMMAND ${CMAKE_COMMAND} -E remove -f ${COVERAGE_INFO}
COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters
COMMAND ${CMAKE_COMMAND}
ARGS -E env ${CROSSCOMPILING_PATH}
COMMAND
${target_code_coverage_PRE_ARGS}
$<TARGET_FILE:${TARGET_NAME}> ${target_code_coverage_ARGS}
@@ -463,8 +457,6 @@ function(target_code_coverage TARGET_NAME)
ccov-capture-${target_code_coverage_COVERAGE_TARGET_NAME}
COMMAND ${CMAKE_COMMAND} -E rm -f ${COVERAGE_INFO}
COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters
COMMAND ${CMAKE_COMMAND}
ARGS -E env ${CROSSCOMPILING_PATH}
COMMAND
${target_code_coverage_PRE_ARGS}
$<TARGET_FILE:${TARGET_NAME}> ${target_code_coverage_ARGS}
+11
View File
@@ -0,0 +1,11 @@
#!/bin/sh
set -e
# assume gfortran-mingw-w64-x86-64-win32 is installed
mingw_prefix=${TOOLCHAIN_PREFIX:-x86_64-w64-mingw32}
libgfortran_path=`ls /usr/lib/gcc/${mingw_prefix}/*/libgfortran.dll.a 2>/dev/null | head -1`
if test -n "${libgfortran_path}"; then
export WINEPATH=`dirname ${libgfortran_path}`
fi
/usr/lib/wine/wine64 "$@"
-4
View File
@@ -25,10 +25,6 @@ set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set (CMAKE_CROSSCOMPILING_EMULATOR wine64)
set (CROSSCOMPILING_PATH "WINEPATH=/usr/${TOOLCHAIN_PREFIX}/sys-root/mingw/bin/")
set (CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS On CACHE BOOL "Export windows symbols")
set (CMAKE_AR:FILEPATH /usr/bin/${TOOLCHAIN_PREFIX}-ar)
set (CMAKE_RANLIB:FILEPATH /usr/bin/${TOOLCHAIN_PREFIX}-ranlib)
+26 -1
View File
@@ -32,7 +32,32 @@ if (DOXYGEN_FOUND)
set (DOXYGEN_SEARCHENGINE_URL)
set (DOXYGEN_STRIP_FROM_PATH ${HDF5_SOURCE_DIR})
set (DOXYGEN_STRIP_FROM_INC_PATH ${HDF5_SOURCE_DIR})
set (DOXYGEN_PREDEFINED "H5_HAVE_DIRECT H5_HAVE_LIBHDFS H5_HAVE_MAP_API H5_HAVE_PARALLEL H5_HAVE_ROS3_VFD H5_DOXYGEN H5_HAVE_SUBFILING_VFD H5_HAVE_IOC_VFD H5_HAVE_MIRROR_VFD H5std_string=std::string H5G_link_t=H5L_type_t")
# Versioned API macros are added to PREDEFINED to give Doxygen a fixed
# expansion and prevent it from discovering the #defines in H5version.h,
# which otherwise causes "multiple @param documentation sections" warnings
# when the macro documentation (\def) and the function documentation both
# get associated with the same underlying function.
#
# The versioned API macros are auto-generated from src/H5vers.txt by the
# bin/make_vers script, which creates doxygen/H5version_doxygen.cmake.
# This ensures the Doxygen configuration stays synchronized with the
# actual default versions defined in src/H5version.h.
set (_doxygen_predefined_entries
H5_HAVE_DIRECT
H5_HAVE_LIBHDFS
H5_HAVE_MAP_API
H5_HAVE_PARALLEL
H5_HAVE_ROS3_VFD
H5_DOXYGEN
H5_HAVE_SUBFILING_VFD
H5_HAVE_IOC_VFD
H5_HAVE_MIRROR_VFD
"H5std_string=std::string"
"H5G_link_t=H5L_type_t"
)
# Load auto-generated versioned API macros from doxygen/H5version_doxygen.cmake
include(${HDF5_DOXYGEN_DIR}/H5version_doxygen.cmake)
list (JOIN _doxygen_predefined_entries " " DOXYGEN_PREDEFINED)
set (DOXYGEN_WARN_AS_ERROR ${HDF5_DOXY_WARNINGS})
# This configure and individual custom targets work together
+8 -7
View File
@@ -719,7 +719,11 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = @DOXYGEN_INPUT_DIRECTORY@
INPUT = @DOXYGEN_INPUT_DIRECTORY@ \
@DOXYGEN_DIR@/examples/menus/core_menu.md \
@DOXYGEN_DIR@/examples/menus/fortran_menu.md \
@DOXYGEN_DIR@/examples/menus/high_level_menu.md \
@DOXYGEN_DIR@/examples/menus/java_menu.md
# This tag can be used to specify the character encoding of the source files
# that Doxygen parses. Internally Doxygen uses the UTF-8 encoding. Doxygen uses
@@ -758,7 +762,6 @@ FILE_PATTERNS = H5*public.h H5*module.h H5*develop.h H5FD*.h \
@DOXYGEN_JAVA_DIR@/hdf/hdf5lib/exceptions/HDF*.java \
*.F90 \
*.dox \
*.md \
h5copy.h h5diff_main.h h5dump.h h5format_convert.h h5import.h h5jam.h h5ls.h h5repack.h h5stat.h \
h5watch.h h5clear.h h5debug.h h5delete.h h5mkgrp.h h5repart.h \
@HDF5_CPP_SRC_DIR@/*.h \
@@ -777,7 +780,8 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which Doxygen is
# run.
EXCLUDE = jsrc
EXCLUDE = jsrc \
@DOXYGEN_DIR@/../config/toolchain
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -804,10 +808,7 @@ EXCLUDE_PATTERNS = */fortran/test/* \
*/hl/fortran/src/*.h \
*/HDF5Examples/FORTRAN/* \
*/sanitizer/* \
*/README.md \
*/CONTRIBUTING.md \
*/CHANGELOG.md \
*/HISTORY-*.md
*/H5fortran_types.F90
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
+48
View File
@@ -0,0 +1,48 @@
# Generated automatically by bin/make_vers -- do not edit
# Add new versioned symbols to H5vers.txt file
#
# Doxygen PREDEFINED entries for versioned APIs
# These macros tell Doxygen which version each API name maps to,
# preventing "multiple @param documentation sections" warnings
list (APPEND _doxygen_predefined_entries
"H5Acreate=H5Acreate2"
"H5Aiterate=H5Aiterate2"
"H5Dcreate=H5Dcreate2"
"H5Dopen=H5Dopen2"
"H5Dread_chunk=H5Dread_chunk2"
"H5Eclear=H5Eclear2"
"H5Eget_auto=H5Eget_auto2"
"H5Eprint=H5Eprint2"
"H5Epush=H5Epush2"
"H5Eset_auto=H5Eset_auto2"
"H5Ewalk=H5Ewalk2"
"H5Fget_info=H5Fget_info2"
"H5Gcreate=H5Gcreate2"
"H5Gopen=H5Gopen2"
"H5Iregister_type=H5Iregister_type2"
"H5Lget_info=H5Lget_info2"
"H5Lget_info_by_idx=H5Lget_info_by_idx2"
"H5Literate=H5Literate2"
"H5Literate_by_name=H5Literate_by_name2"
"H5Lvisit=H5Lvisit2"
"H5Lvisit_by_name=H5Lvisit_by_name2"
"H5Oget_info=H5Oget_info3"
"H5Oget_info_by_idx=H5Oget_info_by_idx3"
"H5Oget_info_by_name=H5Oget_info_by_name3"
"H5Ovisit=H5Ovisit3"
"H5Ovisit_by_name=H5Ovisit_by_name3"
"H5Pencode=H5Pencode2"
"H5Pget_filter=H5Pget_filter2"
"H5Pget_filter_by_id=H5Pget_filter_by_id2"
"H5Pinsert=H5Pinsert2"
"H5Pregister=H5Pregister2"
"H5Rdereference=H5Rdereference2"
"H5Rget_obj_type=H5Rget_obj_type2"
"H5Sencode=H5Sencode2"
"H5Tarray_create=H5Tarray_create2"
"H5Tcommit=H5Tcommit2"
"H5Tdecode=H5Tdecode2"
"H5Tget_array_dims=H5Tget_array_dims2"
"H5Topen=H5Topen2"
)
+2
View File
@@ -16,6 +16,7 @@ ALIASES += DWNURL="\RELURL/downloads/latest"
# URL for RFCs
ALIASES += RFCURL="\DOCURL/rfc"
ALIASES += AEXURL="\HDFURL/archive/support/ftp/HDF5/examples"
ALIASES += RFCWIP="github.com/HDFGroup/hdf5doc/tree/master/RFCs"
#branch name (develop, hdf5_2_0_0)
ALIASES += SRCURL="github.com/HDFGroup/hdf5/blob/develop"
ALIASES += SRCURL114="github.com/HDFGroup/hdf5/blob/hdf5_1.14.6"
@@ -278,6 +279,7 @@ ALIASES += ref_vol_doc="VOL documentation"
# RFCs
################################################################################
ALIASES += ref_rfc20240422="<a href=\"https://\RFCWIP/HDF5_Library/WriteAheadLog/RFC_WriteAheadLog.pdf\">Write-Ahead Log</a>"
ALIASES += ref_rfc20240129="<a href=\"https://\RFCURL/RFC__Adding_support_for_16_bit_floating_point_and_Complex_number_datatypes_to_HDF5.pdf\">Adding support for 16-bit floating point and Complex number datatypes to HDF</a>"
# Same RFC, but complex number datatypes was delayed to 2.0
ALIASES += ref_rfc20240129complex="<a href=\"https://\RFCURL/RFC__Adding_support_for_16_bit_floating_point_and_Complex_number_datatypes_to_HDF5.pdf\">Support for Complex number datatypes</a>"
+4 -4
View File
@@ -268,13 +268,13 @@ are usually similar, see @ref HDF5LIB
For example:
<ul>
<li>
File Interface:<ul><li>#H5Fopen (C)</li><li>#h5f.h5fopen_f (FORTRAN)</li><li>H5.H5Fopen (Java)</li></ul>
File Interface:<ul><li>#H5Fopen (C)</li><li>\ref h5f::h5fopen_f (FORTRAN)</li><li>H5.H5Fopen (Java)</li></ul>
</li>
<li>
Dataset Interface:<ul><li>#H5Dopen (C)</li><li>#h5d.h5dopen_f (FORTRAN)</li><li>H5.H5Dopen (Java)</li></ul>
Dataset Interface:<ul><li>#H5Dopen (C)</li><li>\ref h5d::h5dopen_f (FORTRAN)</li><li>H5.H5Dopen (Java)</li></ul>
</li>
<li>
Dataspace interface:<ul><li>#H5Sclose (C)</li><li>#h5s.h5sclose_f (FORTRAN)</li><li>H5.H5Sclose (Java)</li></ul>
Dataspace interface:<ul><li>#H5Sclose (C)</li><li>\ref h5s::h5sclose_f (FORTRAN)</li><li>H5.H5Sclose (Java)</li></ul>
</li>
</ul>
The HDF5 Python APIs use methods associated with specific objects.
@@ -311,7 +311,7 @@ import numpy
<li>
<strong>FORTRAN</strong>:<br />
<code>USE HDF5</code><br />
and call #h5lib.h5open_f and #h5lib.h5close_f to initialize and close the HDF5 FORTRAN interface
and call \ref h5lib::h5open_f and `h5close_f` to initialize and close the HDF5 FORTRAN interface
</li>
<li>
<strong>Java</strong>:<br />
+3 -3
View File
@@ -166,10 +166,10 @@ Keep the following in mind when looking at the example programs included in this
<table>
<tr>
<td>File Interface: </td>
<td>#h5f.h5fopen_f</td>
<td>\ref h5f::h5fopen_f</td>
</tr><tr>
<td>Dataset Interface:</td>
<td>#h5d.h5dopen_f</td>
<td>\ref h5d::h5dopen_f</td>
</tr>
</table>
@@ -208,7 +208,7 @@ import numpy
<li>
<strong>FORTRAN</strong>:<br />
<code>USE HDF5</code><br />
and call #h5lib.h5open_f and #h5lib.h5close_f to initialize and close the HDF5 FORTRAN interface
and call \ref h5lib::h5open_f and `h5close_f` to initialize and close the HDF5 FORTRAN interface
</li>
<li>
<strong>Java</strong>:<br />
+3 -3
View File
@@ -155,14 +155,14 @@ For details on compiling an HDF5 application:
#H5Gcreate creates a group at the location specified by a location identifier and a name. The location identifier
can be a file identifier or a group identifier and the name can be relative or absolute.
The first #H5Gcreate/#h5g.h5gcreate_f creates the group <code style="background-color:whitesmoke;">MyGroup</code>
The first #H5Gcreate/\ref h5g::h5gcreate_f creates the group <code style="background-color:whitesmoke;">MyGroup</code>
in the root group of the specified file.
The second #H5Gcreate/#h5g.h5gcreate_f creates the group <code style="background-color:whitesmoke;">Group_A</code>
The second #H5Gcreate/\ref h5g::h5gcreate_f creates the group <code style="background-color:whitesmoke;">Group_A</code>
in the group <code style="background-color:whitesmoke;">MyGroup</code> in the root group of the specified
file. Note that the parent group (<code style="background-color:whitesmoke;">MyGroup</code>) already exists.
The third #H5Gcreate/#h5g.h5gcreate_f creates the group <code style="background-color:whitesmoke;">Group_B</code> in the specified group.
The third #H5Gcreate/\ref h5g::h5gcreate_f creates the group <code style="background-color:whitesmoke;">Group_B</code> in the specified group.
\subsection secLBGrpCreateNamesExCont File Contents
+2
View File
@@ -5,6 +5,8 @@ Navigate back: \ref index "Main"
<table>
<tr><th>RFC ID</th><th>Title</th></tr>
<tr> <td>2025-11-15</td> <td>Open access at dl.acm.org/doi/full/10.1145/3731599.3767557</td></tr>
<tr> <td>2024-04-22</td> <td>\ref_rfc20240422</td></tr>
<tr> <td>2022-08-19</td> <td>\ref_rfc20220819</td></tr>
<tr> <td>2021-05-28</td> <td>\ref_rfc20210528</td></tr>
<tr> <td>2021-02-19</td> <td>\ref_rfc20210219</td></tr>
+166 -166
View File
@@ -390,7 +390,7 @@ Release 1.8.17 if their removal causes no problems.
<h4>In the Fortran Interface</h4>
The following Fortran 2003 API has been added:
\li #h5t.h5tenum_insert_f
\li \ref h5t::h5tenum_insert_f
Operation of the new Fortran 2003 version of this API is more consistent with the operation of
the C API than was the Fortran 90 version.
@@ -566,12 +566,12 @@ Additional overloads to the class Attribute to get an attribute's name for conve
The following new Fortran subroutines have been added:
Fortran2003 subroutines:
\li #h5p.h5pset_file_image_f
\li #h5p.h5pget_file_image_f
\li #h5f.h5fget_file_image_f (Added in Release 1.8.11, but not documented at that time.)
\li \ref h5p::h5pset_file_image_f
\li \ref h5p::h5pget_file_image_f
\li \ref h5f::h5fget_file_image_f (Added in Release 1.8.11, but not documented at that time.)
The following Fortran subroutine has been changed:
\li #h5p.h5pset_chunk_cache_f - The values of the constants H5D_CHUNK_CACHE_NSLOTS_DFLT_F
\li \ref h5p::h5pset_chunk_cache_f - The values of the constants H5D_CHUNK_CACHE_NSLOTS_DFLT_F
and H5D_CHUNK_CACHE_NBYTES_DFLT_F have been changed to INTEGER(KIND=size_t).
<h4>Other New Features</h4>
@@ -752,21 +752,21 @@ transition from HDF5 Release 1.8.10 to Release 1.8.11.
<h4>The following new Fortran subroutines have been added</h4>
<strong>Fortran90 subroutines</strong>:
\li #h5o.h5odecr_refcount_f
\li #h5o.h5oexists_by_name_f
\li #h5o.h5oget_comment_f
\li #h5o.h5oget_comment_by_name_f
\li #h5o.h5oincr_refcount_f
\li #h5o.h5oopen_by_idx_f
\li #h5o.h5oset_comment_f
\li #h5o.h5oset_comment_by_name_f
\li \ref h5o::h5odecr_refcount_f
\li \ref h5o::h5oexists_by_name_f
\li \ref h5o::h5oget_comment_f
\li \ref h5o::h5oget_comment_by_name_f
\li \ref h5o::h5oincr_refcount_f
\li \ref h5o::h5oopen_by_idx_f
\li \ref h5o::h5oset_comment_f
\li \ref h5o::h5oset_comment_by_name_f
h5oclose_f was introduced in HDF5 Release 1.8.8 but remained undocumented until this release.
Fortran2003 subroutines:
\li #h5o.h5oget_info_f
\li #h5o.h5oget_info_by_idx_f
\li #h5o.h5ovisit_by_name_f
\li \ref h5o::h5oget_info_f
\li \ref h5o::h5oget_info_by_idx_f
\li \ref h5o::h5ovisit_by_name_f
<h4>New Feature: Dynamically Loaded Filters</h4>
HDF5 now detects and dynamically loads external filters, reducing the need for an application to
@@ -797,7 +797,7 @@ The return value of the following high-level C function has changed:
returned size of of the dimension scale name (bug fix).
<h4>In the Fortran subroutines</h4>
\li #h5p.h5pset_external_f and #h5p.h5pget_external_f - the type of the offset parameter has changed to
\li \ref h5p::h5pset_external_f and \ref h5p::h5pget_external_f - the type of the offset parameter has changed to
INTEGER(KIND=OFF_T) to support 8-byte integers, matching the C type definition of off_t.
\li The HDF5 Library now supports data conversion from enumeration to integer and floating-point
numeric datatypes.
@@ -828,7 +828,7 @@ transition from HDF5 Release 1.8.9 to Release 1.8.10.
\li H5Pget_mpio_no_collective_cause
<strong>The following new Fortran subroutine has been added</strong>:
\li #h5p.h5pget_mpio_actual_io_mode_f
\li \ref h5p::h5pget_mpio_actual_io_mode_f
The syntax of the following high-level C function has changed:
\li H5TBAget_fill - This function's return type has been changed to h5tri_t. A return value of 1
@@ -848,7 +848,7 @@ the transition from HDF5 Release 1.8.8 to Release 1.8.9.
A new high level C function and Fortran subroutine were added to HDF5 Lite (H5LT) to determine
whether an HDF5 path is correct and resolves to a valid HDF5 object:
\li h5LTpath_valid
\li #h5lt.h5ltpath_valid_f
\li `h5ltpath_valid_f`
The new file image operations feature consists of the following functions and their associated
callbacks, struct, and ENUM. This feature enables an application to load a file into memory
@@ -896,8 +896,8 @@ for those who may have missed its introduction:
<h4>New Fortran Subroutines</h4>
The following Fortran subroutines have been added in this release:
\li #h5lt.h5ltpath_valid_f
\li #h5o.h5ocopy_f
\li `h5ltpath_valid_f`
\li \ref h5o::h5ocopy_f
\li h5fset_mpi_atomicity_f
\li h5fget_mpi_atomicity_f
@@ -905,7 +905,7 @@ Where a subroutine is part of a new HDF5 feature, that feature is described abov
<h4>Fortran Subroutine with Changed Behavior</h4>
The content of the buffer returned by the following Fortran subroutine has changed as noted:
\li #h5lt.h5ltget_attribute_string_f - If the returned buffer requires padding, #h5lt.h5ltget_attribute_string_f
\li `h5ltget_attribute_string_f` - If the returned buffer requires padding, `h5ltget_attribute_string_f`
now employs space padding; this buffer was previously returned with a C NULL terminator.
<h4>Command-line Utilities with New Options and/or Changed Behavior</h4>
@@ -957,13 +957,13 @@ Terminology:
<h4>New Fortran 2003-only subroutines</h4>
New subroutines available only in Fortran 2003 environments:
\li #h5d.h5dvlen_reclaim_f
\li #h5e.h5eset_auto_f
\li #h5l.h5literate_by_name_f
\li #h5l.h5literate_f
\li #h5o.h5ovisit_f
\li #h5o.h5oget_info_by_name_f
\li #h5t.h5tconvert_f
\li \ref h5d::h5dvlen_reclaim_f
\li \ref h5e::h5eset_auto_f
\li \ref h5l::h5literate_by_name_f
\li \ref h5l::h5literate_f
\li \ref h5o::h5ovisit_f
\li \ref h5o::h5oget_info_by_name_f
\li \ref h5t::h5tconvert_f
<h4>Subroutines with Fortran 90 versions and extended features in Fortran 2003 environments</h4>
Subroutines in this section have extended support in Fortran 2003 environments, but are new or unchanged in Fortran 90 environments.
@@ -971,44 +971,44 @@ Subroutines in this section have extended support in Fortran 2003 environments,
All existing Fortran 90 subroutines, including those not mentioned below, are available in both Fortran 90 and Fortran 2003 environments.
Subroutines with support for the derived type C_PTR in Fortran 2003 environments:
\li #h5p.h5pget_f
\li #h5p.h5pget_fill_value_f
\li #h5p.h5pinsert_f
\li #h5p.h5pregister_f
\li #h5p.h5pset_f
\li #h5p.h5pset_fill_value_f
\li #h5r.h5rcreate_f
\li \ref h5p::h5pget_f
\li \ref h5p::h5pget_fill_value_f
\li \ref h5p::h5pinsert_f
\li \ref h5p::h5pregister_f
\li \ref h5p::h5pset_f
\li \ref h5p::h5pset_fill_value_f
\li \ref h5r::h5rcreate_f
\li h5rdereference_f
\li #h5r.h5rget_name_f
\li #h5r.h5rget_object_type_f
\li \ref h5r::h5rget_name_f
\li \ref h5r::h5rget_object_type_f
Subroutines with support for the derived type C_PTR and a changed signature in Fortran 2003 environments:
\li #h5a.h5aread_f
\li #h5a.h5awrite_f
\li #h5d.h5dread_f
\li #h5d.h5dwrite_f
\li \ref h5a::h5aread_f
\li \ref h5a::h5awrite_f
\li \ref h5d::h5dread_f
\li \ref h5d::h5dwrite_f
Subroutine with additional optional parameters in Fortran 2003 environments:
\li #h5p.h5pcreate_class_f
\li \ref h5p::h5pcreate_class_f
<h4>New and updated Fortran 90 subroutines</h4>
New Fortran 90 subroutines:
\li #h5p.h5pset_nbit_f
\li #h5p.h5pset_scaleoffset_f
\li \ref h5p::h5pset_nbit_f
\li \ref h5p::h5pset_scaleoffset_f
Updated Fortran 90 subroutines:
\li #h5lib.h5open_f
\li #h5lib.h5close_f - has been modified in this release to close only the HDF5 Fortran
\li \ref h5lib::h5open_f
\li `h5close_f` - has been modified in this release to close only the HDF5 Fortran
Library interface; it no longer closes the underlying HDF5 Library.
\li #h5lib.h5check_version_f
\li #h5lib.h5get_libversion_f
\li #h5lib.h5garbage_collect_f
\li #h5lib.h5dont_atexit_f
\li `h5check_version_f`
\li \ref h5lib::h5get_libversion_f
\li \ref h5lib::h5garbage_collect_f
\li \ref h5lib::h5dont_atexit_f
<h4>New Fortran utility functions and derived types</h4>
New Fortran utility functions:
\li #h5lib.h5offsetof Available only in Fortran 2003 environments.
\li #h5lib.h5kind_to_type Available in either Fortran environment.
\li <code>h5offsetof</code> Available only in Fortran 2003 environments.
\li `h5kind_to_type` Available in either Fortran environment.
New Fortran derived types in Fortran 2003 environments:
\li hvl_t Described in New Features.
@@ -1016,15 +1016,15 @@ New Fortran derived types in Fortran 2003 environments:
<h4>New high level Fortran interface</h4>
New Fortran subroutines in the HDF5 Dimension Scale high-level interface, H5DS:
\li #h5ds.h5dsset_scale_f
\li #h5ds.h5dsattach_scale_f
\li #h5ds.h5dsdetach_scale_f
\li #h5ds.h5dsis_attached_f
\li #h5ds.h5dsis_scale_f
\li #h5ds.h5dsset_label_f
\li #h5ds.h5dsget_label_f
\li #h5ds.h5dsget_scale_name_f
\li #h5ds.h5dsget_num_scales_f
\li `h5dsset_scale_f`
\li `h5dsattach_scale_f`
\li `h5dsdetach_scale_f`
\li `h5dsis_attached_f`
\li `h5dsis_scale_f`
\li `h5dsset_label_f`
\li `h5dsget_label_f`
\li `h5dsget_scale_name_f`
\li `h5dsget_num_scales_f`
These subtroutines are available in both Fortran 90 and Fortran 2003 environments.
@@ -1123,15 +1123,15 @@ Two new flags have been added:
Several <code>h5ltmake_dataset\*\_f</code> and <code>h5ltread_dataset\*\_f</code> subroutines have
been modified to allow them to create or read arrays of up to seven dimensions. They had previously
been limited to three dimensions.
\li #h5lt.h5ltmake_dataset_f
\li `h5ltmake_dataset_f`
\li .h5ltmake_dataset_int_f
\li .h5ltmake_dataset_float_f
\li h5ltmake_dataset_double_f
\li #h5lt.h5ltread_dataset_f
\li `h5ltread_dataset_f`
\li h5ltread_dataset_int_f
\li h5ltread_dataset_float_f
\li h5ltread_dataset_double_f
\li #h5tb.h5tbget_field_info_f has a new maxlen_out parameter. This parameter is optional.
\li `h5tbget_field_info_f` has a new maxlen_out parameter. This parameter is optional.
<h4>Command-line Utilities with New Options</h4>
\ref sec_cltools_h5diff has a new verbose with levels option to display additional attribute information:
@@ -1281,8 +1281,8 @@ The overloaded forms of the following C++ member functions are new in this relea
<h4>Fortran Subroutines with Changed Interface</h4>
The link type parameter values associated with the following Fortran subroutines have changed in this release:
\li #h5l.h5lget_info_f
\li #h5l.h5lget_info_by_idx_f
\li \ref h5l::h5lget_info_f
\li \ref h5l::h5lget_info_by_idx_f
Valid values for the parameter link_type have changed to the following:
\li H5L_TYPE_HARD_F
@@ -1334,9 +1334,9 @@ The function has also been changed to suppress the warning message entirely if
<h4>Fortran Subroutines with Changed Syntax</h4>
The following Fortran subroutines have changed syntax in this release:
\li #h5l.h5lget_info_f - The type of the parameter address has changed from INTEGER to INTEGER(HADDR_T).
\li \ref h5l::h5lget_info_f - The type of the parameter address has changed from INTEGER to INTEGER(HADDR_T).
(This note added on 13 January 2010.)
\li #h5l.h5lget_info_by_idx_f - <code>h5lget_info_by_idx_f (loc_id, group_name, index_field, order, n,
\li \ref h5l::h5lget_info_by_idx_f - <code>h5lget_info_by_idx_f (loc_id, group_name, index_field, order, n,
&link_type, f_corder_valid, corder, cset, address, val_size, &hdferr, lapl_id)</code> - The
parameters link_type, address, and val_size have been added; the parameter data_size has been removed.
@@ -1378,10 +1378,10 @@ The following C functions are new for this release and are documented in the HDF
<h4>Fortran Subroutines</h4>
The following subroutines are new in this release:
\li #h5d.h5dget_access_plist_f
\li #h5i.h5iis_valid_f
\li #h5p.h5pset_chunk_cache_f
\li #h5p.h5pget_chunk_cache_f
\li \ref h5d::h5dget_access_plist_f
\li \ref h5i::h5iis_valid_f
\li \ref h5p::h5pset_chunk_cache_f
\li \ref h5p::h5pget_chunk_cache_f
<h4>Function with Changed Behavior</h4>
\li H5set_free_list_limits
@@ -1422,7 +1422,7 @@ The following C functions are new for this release and are documented in the \re
<h4>Fortran Subroutine</h4>
The following subroutine is new in this release:
\li #h5t.h5tget_native_type_f
\li \ref h5t::h5tget_native_type_f
<h4>New C++ Wrappers</h4>
A number of C++ wrappers were added/removed. See RELEASE.txt for details.
@@ -1436,9 +1436,9 @@ The following function syntaxes have changed; the affected return values and par
<h4>Changed Fortran Subroutines</h4>
The optional parameter mounted has been added to the following subroutines:
\li #h5g.h5gget_info_f
\li #h5g.h5gget_info_by_idx_f
\li #h5g.h5gget_info_by_name_f
\li \ref h5g::h5gget_info_f
\li \ref h5g::h5gget_info_by_idx_f
\li \ref h5g::h5gget_info_by_name_f
<strong>Changed Data Structure</strong>
\li H5G_info_t - A mounted filed has been added to the H5G_info_t struct.
@@ -1519,108 +1519,108 @@ There are no new C functions for Release 1.8.1.
<h4>Fortran subroutines</h4>
The following Fortran subroutines are new for Release 1.8.1 and are documented in the HDF5 Reference Manual.
\b H5A
\li #h5a.h5acreate_f
\li #h5a.h5acreate_by_name_f
\li #h5a.h5adelete_by_idx_f
\li #h5a.h5adelete_by_name_f
\li #h5a.h5aexists_f
\li #h5a.h5aexists_by_name_f
\li #h5a.h5aget_create_plist_f
\li #h5a.h5aget_info_f
\li #h5a.h5aget_info_by_idx_f
\li #h5a.h5aget_info_by_name_f
\li #h5a.h5aget_name_by_idx_f
\li #h5a.h5aget_storage_size_f
\li #h5a.h5aopen_f
\li #h5a.h5aopen_by_idx_f
\li #h5a.h5aopen_by_name_f
\li #h5a.h5arename_f
\li #h5a.h5arename_by_name_f
\li \ref h5a::h5acreate_f
\li \ref h5a::h5acreate_by_name_f
\li \ref h5a::h5adelete_by_idx_f
\li \ref h5a::h5adelete_by_name_f
\li \ref h5a::h5aexists_f
\li \ref h5a::h5aexists_by_name_f
\li \ref h5a::h5aget_create_plist_f
\li \ref h5a::h5aget_info_f
\li \ref h5a::h5aget_info_by_idx_f
\li \ref h5a::h5aget_info_by_name_f
\li \ref h5a::h5aget_name_by_idx_f
\li \ref h5a::h5aget_storage_size_f
\li \ref h5a::h5aopen_f
\li \ref h5a::h5aopen_by_idx_f
\li \ref h5a::h5aopen_by_name_f
\li \ref h5a::h5arename_f
\li \ref h5a::h5arename_by_name_f
\b H5D
\li #h5d.h5dcreate_anon_f
\li #h5d.h5dcreate_f
\li #h5d.h5dopen_f
\li #h5d.h5dset_extent_f
\li \ref h5d::h5dcreate_anon_f
\li \ref h5d::h5dcreate_f
\li \ref h5d::h5dopen_f
\li `h5dset_extent_f`
\b H5G
\li #h5g.h5gcreate_anon_f
\li #h5g.h5gcreate_f
\li #h5g.h5gget_create_plist_f
\li #h5g.h5gget_info_f
\li #h5g.h5gget_info_by_idx_f
\li #h5g.h5gget_info_by_name_f
\li #h5g.h5gopen_f
\li \ref h5g::h5gcreate_anon_f
\li \ref h5g::h5gcreate_f
\li \ref h5g::h5gget_create_plist_f
\li \ref h5g::h5gget_info_f
\li \ref h5g::h5gget_info_by_idx_f
\li \ref h5g::h5gget_info_by_name_f
\li \ref h5g::h5gopen_f
\b H5L
\li #h5l.h5lcopy_f
\li #h5l.h5lcreate_external_f
\li #h5l.h5lcreate_hard_f
\li #h5l.h5lcreate_soft_f
\li #h5l.h5ldelete_f
\li #h5l.h5ldelete_by_idx_f
\li #h5l.h5lexists_f
\li #h5l.h5lget_info_f
\li #h5l.h5lget_info_by_idx_f
\li #h5l.h5lget_name_by_idx_f
\li #h5l.h5lmove_f
\li \ref h5l::h5lcopy_f
\li \ref h5l::h5lcreate_external_f
\li \ref h5l::h5lcreate_hard_f
\li \ref h5l::h5lcreate_soft_f
\li \ref h5l::h5ldelete_f
\li \ref h5l::h5ldelete_by_idx_f
\li \ref h5l::h5lexists_f
\li \ref h5l::h5lget_info_f
\li \ref h5l::h5lget_info_by_idx_f
\li \ref h5l::h5lget_name_by_idx_f
\li \ref h5l::h5lmove_f
\b H5O
\li #h5o.h5olink_f
\li #h5o.h5oopen_f
\li \ref h5o::h5olink_f
\li \ref h5o::h5oopen_f
\b H5P
\li #h5p.h5pget_attr_creation_order_f
\li #h5p.h5pget_attr_phase_change_f
\li #h5p.h5pget_char_encoding_f
\li #h5p.h5pget_copy_object_f
\li #h5p.h5pget_create_inter_group_f
\li #h5p.h5pget_data_transform_f
\li \ref h5p::h5pget_attr_creation_order_f
\li \ref h5p::h5pget_attr_phase_change_f
\li \ref h5p::h5pget_char_encoding_f
\li \ref h5p::h5pget_copy_object_f
\li \ref h5p::h5pget_create_inter_group_f
\li \ref h5p::h5pget_data_transform_f
\li h5pget_elink_prefix_f
\li #h5p.h5pget_est_link_info_f
\li #h5p.h5pget_fapl_direct_f
\li #h5p.h5pget_link_creation_order_f
\li #h5p.h5pget_link_phase_change_f
\li #h5p.h5pget_local_heap_size_hint_f
\li #h5p.h5pget_nlinks_f
\li #h5p.h5pget_obj_track_times_f
\li \ref h5p::h5pget_est_link_info_f
\li \ref h5p::h5pget_fapl_direct_f
\li \ref h5p::h5pget_link_creation_order_f
\li \ref h5p::h5pget_link_phase_change_f
\li \ref h5p::h5pget_local_heap_size_hint_f
\li \ref h5p::h5pget_nlinks_f
\li \ref h5p::h5pget_obj_track_times_f
\li h5pget_shared_mesg_index_f
\li h5pget_shared_mesg_nindexes_f
\li #h5p.h5pset_attr_creation_order_f
\li #h5p.h5pset_attr_phase_change_f
\li #h5p.h5pset_char_encoding_f
\li #h5p.h5pset_copy_object_f
\li #h5p.h5pset_create_inter_group_f
\li #h5p.h5pset_data_transform_f
\li \ref h5p::h5pset_attr_creation_order_f
\li \ref h5p::h5pset_attr_phase_change_f
\li \ref h5p::h5pset_char_encoding_f
\li \ref h5p::h5pset_copy_object_f
\li \ref h5p::h5pset_create_inter_group_f
\li \ref h5p::h5pset_data_transform_f
\li h5pset_elink_prefix_f
\li #h5p.h5pset_est_link_info_f
\li #h5p.h5pset_fapl_direct_f
\li #h5p.h5pset_libver_bounds_f
\li #h5p.h5pset_link_creation_order_f
\li #h5p.h5pset_link_phase_change_f
\li #h5p.h5pset_local_heap_size_hint_f
\li #h5p.h5pset_obj_track_times_f
\li #h5p.h5pset_nbit_f
\li #h5p.h5pset_nlinks_f
\li #h5p.h5pset_scaleoffset_f
\li \ref h5p::h5pset_est_link_info_f
\li \ref h5p::h5pset_fapl_direct_f
\li \ref h5p::h5pset_libver_bounds_f
\li \ref h5p::h5pset_link_creation_order_f
\li \ref h5p::h5pset_link_phase_change_f
\li \ref h5p::h5pset_local_heap_size_hint_f
\li \ref h5p::h5pset_obj_track_times_f
\li \ref h5p::h5pset_nbit_f
\li \ref h5p::h5pset_nlinks_f
\li \ref h5p::h5pset_scaleoffset_f
\b H5R
\li #h5r.h5rget_name_f
\li \ref h5r::h5rget_name_f
\b H5S
\li #h5s.h5sdecode_f
\li #h5s.h5sencode_f
\li #h5s.h5sextent_equal_f
\li \ref h5s::h5sdecode_f
\li \ref h5s::h5sencode_f
\li \ref h5s::h5sextent_equal_f
\b H5T
\li #h5t.h5tcommit_anon_f
\li #h5t.h5tcommit_f
\li #h5t.h5tcommitted_f
\li #h5t.h5tcompiler_conv_f
\li #h5t.h5tdecode_f
\li #h5t.h5tencode_f
\li #h5t.h5tget_create_plist_f
\li #h5t.h5topen_f
\li \ref h5t::h5tcommit_anon_f
\li \ref h5t::h5tcommit_f
\li \ref h5t::h5tcommitted_f
\li \ref h5t::h5tcompiler_conv_f
\li \ref h5t::h5tdecode_f
\li \ref h5t::h5tencode_f
\li \ref h5t::h5tget_create_plist_f
\li \ref h5t::h5topen_f
<h4>C++ wrappers</h4>
There are no new C++ wrappers for Release 1.8.1.
@@ -2131,13 +2131,13 @@ Symbols and preset values associated with the following functions, subroutines o
<li>#H5Z_FILTER_SCALEOFFSET</li></ul>
Fortran90 subroutines:
\li #h5p.h5pget_filter_f
\li #h5p.h5pget_filter_by_id_f
\li #h5p.h5pmodify_filter_f
\li #h5p.h5premove_filter_f
\li #h5p.h5pset_filter_f
\li #h5z.h5zfilter_avail_f
\li #h5z.h5zget_filter_info_f - Two new filter identifiers are available for the filter or filter_id parameters:<ul>
\li \ref h5p::h5pget_filter_f
\li \ref h5p::h5pget_filter_by_id_f
\li \ref h5p::h5pmodify_filter_f
\li \ref h5p::h5premove_filter_f
\li \ref h5p::h5pset_filter_f
\li \ref h5z::h5zfilter_avail_f
\li \ref h5z::h5zget_filter_info_f - Two new filter identifiers are available for the filter or filter_id parameters:<ul>
<li>H5Z_FILTER_NBIT_F</li>
<li>H5Z_FILTER_SCALEOFFSET_F</li></ul>
+28 -28
View File
@@ -168,19 +168,19 @@ The following C++ wrapper was added:
<h4>In the Fortran API</h4>
The following Fortran wrappers were added or changed:
\li #h5f.h5fget_dset_no_attrs_hint_f - Wrappers for the dataset object header minimization calls. See #H5Fget_dset_no_attrs_hint.
\li #h5f.h5fset_dset_no_attrs_hint_f - Wrappers for the dataset object header minimization calls. See #H5Fset_dset_no_attrs_hint.
\li #h5p.h5pget_dset_no_attrs_hint_f - Wrappers for the dataset object header minimization calls. See #H5Pget_dset_no_attrs_hint.
\li #h5p.h5pset_dset_no_attrs_hint_f - Wrappers for the dataset object header minimization calls. See #H5Pset_dset_no_attrs_hint.
\li #h5o.h5ovisit_f - Added new Fortran 'fields' optional parameter. See #H5Ovisit2.
\li #h5o.h5oget_info_by_name_f - Added new Fortran 'fields' optional parameter. See #H5Oget_info_by_name2.
\li #h5o.h5oget_info_f - Added new Fortran 'fields' optional parameter. See #H5Oget_info2.
\li #h5o.h5oget_info_by_idx_f - Added new Fortran 'fields' optional parameter. See #H5Oget_info_by_idx2.
\li #h5o.h5ovisit_by_name_f - Added new Fortran 'fields' optional parameter. See #H5Ovisit_by_name2.
\li `h5fget_dset_no_attrs_hint_f` - Wrappers for the dataset object header minimization calls. See #H5Fget_dset_no_attrs_hint.
\li `h5fset_dset_no_attrs_hint_f` - Wrappers for the dataset object header minimization calls. See #H5Fset_dset_no_attrs_hint.
\li `h5pget_dset_no_attrs_hint_f` - Wrappers for the dataset object header minimization calls. See #H5Pget_dset_no_attrs_hint.
\li `h5pset_dset_no_attrs_hint_f` - Wrappers for the dataset object header minimization calls. See #H5Pset_dset_no_attrs_hint.
\li \ref h5o::h5ovisit_f - Added new Fortran 'fields' optional parameter. See #H5Ovisit2.
\li \ref h5o::h5oget_info_by_name_f - Added new Fortran 'fields' optional parameter. See #H5Oget_info_by_name2.
\li \ref h5o::h5oget_info_f - Added new Fortran 'fields' optional parameter. See #H5Oget_info2.
\li \ref h5o::h5oget_info_by_idx_f - Added new Fortran 'fields' optional parameter. See #H5Oget_info_by_idx2.
\li \ref h5o::h5ovisit_by_name_f - Added new Fortran 'fields' optional parameter. See #H5Ovisit_by_name2.
The following Fortran utility function was added:
\li #h5lib.h5gmtime - converts (C) <code>time_t</code> structure to Fortran DATE AND TIME storage format
\li `h5gmtime` - converts (C) <code>time_t</code> structure to Fortran DATE AND TIME storage format
A new Fortran derived type was added:
\li c_h5o_info_t - This is interoperable with C's h5o_info_t. This is needed for callback functions which
@@ -442,13 +442,13 @@ page, we list each feature and its associated C functions and Fortran wrappers.
raw data, but it does rewrite HDF5 metadata.
<h4>Collective Metadata I/O:</h4>
\li #H5Pset_coll_metadata_write and #h5p.h5pset_coll_metadata_write_f - Establishes I/O mode property setting,
\li #H5Pset_coll_metadata_write and `h5pset_coll_metadata_write_f` - Establishes I/O mode property setting,
collective or independent, for metadata writes.
\li #H5Pget_coll_metadata_write and #h5p.h5pget_coll_metadata_write_f - Retrieves I/O mode property setting
\li #H5Pget_coll_metadata_write and `h5pget_coll_metadata_write_f` - Retrieves I/O mode property setting
for metadata writes.
\li #H5Pset_all_coll_metadata_ops and #h5p.h5pset_all_coll_metadata_ops_f - Establishes I/O mode, collective
\li #H5Pset_all_coll_metadata_ops and `h5pset_all_coll_metadata_ops_f` - Establishes I/O mode, collective
or independent, for metadata read operations.
\li #H5Pget_all_coll_metadata_ops and #h5p.h5pget_all_coll_metadata_ops_f - Retrieves I/O mode for metadata
\li #H5Pget_all_coll_metadata_ops and `h5pget_all_coll_metadata_ops_f` - Retrieves I/O mode for metadata
read operations.
<h4>Fine-tuning the Metadata Cache:</h4>
@@ -486,34 +486,34 @@ when processing files employing the VDS feature:
and handles the file and metadata appropriately.
<h4>Virtual Dataset or VDS:</h4>
\li #H5Pset_virtual and #h5p.h5pset_virtual_f - Sets the mapping between virtual and source datasets.
\li #H5Pget_virtual_count and #h5p.h5pget_virtual_count_f - Retrieves the number of mappings for the
\li #H5Pset_virtual and `h5pset_virtual_f` - Sets the mapping between virtual and source datasets.
\li #H5Pget_virtual_count and `h5pget_virtual_count_f` - Retrieves the number of mappings for the
virtual dataset.
\li #H5Pget_virtual_vspace and #h5p.h5pget_virtual_vspace_f - Retrieves a dataspace identifier for the
\li #H5Pget_virtual_vspace and `h5pget_virtual_vspace_f` - Retrieves a dataspace identifier for the
selection within the virtual dataset used in the mapping.
\li #H5Pget_virtual_srcspace and #h5p.h5pget_virtual_srcspace_f - Retrieves a dataspace identifier
\li #H5Pget_virtual_srcspace and `h5pget_virtual_srcspace_f` - Retrieves a dataspace identifier
for the selection within the source dataset used in the mapping.
\li #H5Pget_virtual_dsetname and #h5p.h5pget_virtual_dsetname_f - Retrieves the name of a source
\li #H5Pget_virtual_dsetname and `h5pget_virtual_dsetname_f` - Retrieves the name of a source
dataset used in the mapping.
\li #H5Pget_virtual_filename and #h5p.h5pget_virtual_filename_f - Retrieves the filename of a source
\li #H5Pget_virtual_filename and `h5pget_virtual_filename_f` - Retrieves the filename of a source
dataset used in the mapping.
\li #H5Pset_virtual_printf_gap and #h5p.h5pset_virtual_printf_gap_f - Sets maximum number of missing
\li #H5Pset_virtual_printf_gap and `h5pset_virtual_printf_gap_f` - Sets maximum number of missing
source files and/or datasets with printf-style names when getting the extent of an unlimited virtual dataset.
\li #H5Pget_virtual_printf_gap and #h5p.h5pget_virtual_printf_gap_f - Returns maximum number of missing
\li #H5Pget_virtual_printf_gap and `h5pget_virtual_printf_gap_f` - Returns maximum number of missing
source files and/or datasets with printf-style names when getting the extent for an unlimited virtual dataset.
\li #H5Pset_virtual_view and #h5p.h5pset_virtual_view_f - Sets the view of the virtual dataset to include
\li #H5Pset_virtual_view and `h5pset_virtual_view_f` - Sets the view of the virtual dataset to include
or exclude missing mapped elements.
\li #H5Pget_virtual_view and #h5p.h5pget_virtual_view_f - Retrieves the view of a virtual dataset.
\li #H5Pget_virtual_view and `h5pget_virtual_view_f` - Retrieves the view of a virtual dataset.
<h4>Supporting Functions:</h4>
\li #H5Sis_regular_hyperslab and #h5s.h5sis_regular_hyperslab_f - Determines whether a hyperslab selection is regular.
\li #H5Sget_regular_hyperslab and #h5s.h5sget_regular_hyperslab_f - Retrieves a regular hyperslab selection.
\li #H5Sis_regular_hyperslab and `h5sis_regular_hyperslab_f` - Determines whether a hyperslab selection is regular.
\li #H5Sget_regular_hyperslab and `h5sget_regular_hyperslab_f` - Retrieves a regular hyperslab selection.
<h4>Modified Functions:</h4>
The following pre-exising functions have been modified to understand virtual datasets.
\li #H5Pset_layout and #h5p.h5pset_layout_f - Specifies the layout to be used for a dataset.
\li #H5Pset_layout and `h5pset_layout_f` - Specifies the layout to be used for a dataset.
Virtual dataset, #H5D_VIRTUAL, has been added to the list of layouts available through this function.
\li #H5Pget_layout and #h5p.h5pget_layout_f - Retrieves the layout in use for a dataset.
\li #H5Pget_layout and `h5pget_layout_f` - Retrieves the layout in use for a dataset.
Virtual dataset, #H5D_VIRTUAL, has been added to the list of layouts.
<h4>Partial Edge Chunks:</h4>
+20 -20
View File
@@ -176,26 +176,26 @@ list the specific new feature that they were added for.
<strong>In the Fortran Interface (main library)</strong><br />
Following are the new or changed APIs introduced in HDF5-1.12.0. Those introduced with a new feature
list the specific new feature that they were added for.
\li #h5f.h5fget_fileno_f - Retrieves a file's file number that uniquely identifies the open file
\li #h5f.h5fis_accessible_f - Determines if a file can be opened with a given fapl
\li #h5l.h5lget_info_f - The function h5lget_info_f is mapped to #H5Lget_info2.
\li #h5l.h5lget_info_by_idx_f - The function h5lget_info_by_idx_f is mapped to #H5Lget_info_by_idx2.
\li #h5l.h5literate_f - The function h5literate_f is mapped to #H5Literate2.
\li #h5l.h5literate_by_name_f - The function h5literate_by_name_f is mapped to #H5Literate_by_name2.
\li #h5o.h5oopen_by_token_f - Opens an object in an HDF5 file using its VOL independent token
\li #h5o.h5otoken_cmp_f - Compares two VOL connector object tokens
\li #h5p.h5pget_vol_id_f - Returns the identifier of the current VOL connector
\li #h5p.h5pset_vol_f - Set the file VOL connector for a file access property list
\li #h5vl.h5vlclose_f - Closes a VOL connector identifier
\li #h5vl.h5vlget_connector_id_f - Retrieves the VOL connector identifier for a given object identifier
\li #h5vl.h5vlget_connector_id_by_name_f - Retrieves the identifier for a registered VOL connector name
\li #h5vl.h5vlget_connector_id_by_value_f - Retrieves the identifier for a registered VOL connector value
\li #h5vl.h5vlget_connector_name_f - Retrieves the connector name for the VOL associated with the object or file identifier
\li #h5vl.h5vlis_connector_registered_by_name_f - Tests whether a VOL class has been registered or not for a connector name
\li #h5vl.h5vlis_connector_registered_by_value_f - Tests whether a VOL class has been registered or not for a connector value
\li #h5vl.h5vlregister_connector_by_name_f - Registers a new VOL connector by name
\li #h5vl.h5vlregister_connector_by_value_f - Registers a new VOL connector by connector value
\li #h5vl.h5vlunregister_connector_f - Removes a VOL connector identifier from the library
\li \ref h5f::h5fget_fileno_f - Retrieves a file's file number that uniquely identifies the open file
\li \ref h5f::h5fis_accessible_f - Determines if a file can be opened with a given fapl
\li <code>h5lget_info_f</code> - The function h5lget_info_f is mapped to #H5Lget_info2.
\li <code>h5lget_info_by_idx_f</code> - The function h5lget_info_by_idx_f is mapped to #H5Lget_info_by_idx2.
\li \ref h5l::h5literate_f - The function h5literate_f is mapped to #H5Literate2.
\li \ref h5l::h5literate_by_name_f - The function h5literate_by_name_f is mapped to #H5Literate_by_name2.
\li <code>h5oopen_by_token_f</code> - Opens an object in an HDF5 file using its VOL independent token
\li <code>h5otoken_cmp_f</code> - Compares two VOL connector object tokens
\li \ref h5p::h5pget_vol_id_f - Returns the identifier of the current VOL connector
\li \ref h5p::h5pset_vol_f - Set the file VOL connector for a file access property list
\li \ref h5vl::h5vlclose_f - Closes a VOL connector identifier
\li \ref h5vl::h5vlget_connector_id_f - Retrieves the VOL connector identifier for a given object identifier
\li \ref h5vl::h5vlget_connector_id_by_name_f - Retrieves the identifier for a registered VOL connector name
\li \ref h5vl::h5vlget_connector_id_by_value_f - Retrieves the identifier for a registered VOL connector value
\li \ref h5vl::h5vlget_connector_name_f - Retrieves the connector name for the VOL associated with the object or file identifier
\li \ref h5vl::h5vlis_connector_registered_by_name_f - Tests whether a VOL class has been registered or not for a connector name
\li \ref h5vl::h5vlis_connector_registered_by_value_f - Tests whether a VOL class has been registered or not for a connector value
\li \ref h5vl::h5vlregister_connector_by_name_f - Registers a new VOL connector by name
\li \ref h5vl::h5vlregister_connector_by_value_f - Registers a new VOL connector by connector value
\li \ref h5vl::h5vlunregister_connector_f - Removes a VOL connector identifier from the library
<h4>In the C++ Wrapper</h4>
\li <code>H5File::getFileNum</code> - See #H5Fget_fileno
+18 -18
View File
@@ -94,20 +94,20 @@ Following are the new APIs introduced in HDF5-1.14.3.
\li #H5Pget_actual_selection_io_mode - Retrieves the type(s) of I/O performed on raw data
<h4>In the Fortran Interface</h4>
\li #h5lib.h5get_free_list_sizes_f - Gets the current size of the free lists used to manage memory
\li #h5d.h5dwrite_chunk_f - Writes a raw data chunk from a buffer directly to a dataset in a file
\li #h5d.h5dread_chunk_f - Reads a raw data chunk directly from a dataset in a file into a buffer
\li #h5f.h5fget_info_f - Retrieves global file information
\li #h5l.h5lvisit_f - Recursively visits all links starting from a specified group
\li #h5l.h5lvisit_by_name_f - Recursively visits all links starting from a specified group
\li #h5p.h5pget_no_selection_io_cause_f - Retrieves the cause for not performing selection or vector I/O on the last parallel I/O call
\li #h5p.h5pget_mpio_no_collective_cause_f - Retrieves local and global causes that broke collective I/O on the last parallel I/O call
\li #h5s.h5sselect_shape_same_f - Checks if two selections are the same shape
\li #h5s.h5sselect_intersect_block_f - Checks if current selection intersects with a block
\li #h5p.h5pget_file_space_page_size_f - Gets the file space page size for a file creation property list
\li #h5p.h5pset_file_space_page_size_f - Sets the file space page size for a file creation property list
\li #h5p.h5pget_file_space_strategy_f - Gets the file space handling strategy and persisting free-space values for a file creation property list
\li #h5p.h5pset_file_space_strategy_f - Sets the file space handling strategy and persisting free-space values for a file creation property list
\li `h5get_free_list_sizes_f` - Gets the current size of the free lists used to manage memory
\li \ref h5d::h5dwrite_chunk_f - Writes a raw data chunk from a buffer directly to a dataset in a file
\li \ref h5d::h5dread_chunk_f - Reads a raw data chunk directly from a dataset in a file into a buffer
\li `h5fget_info_f` - Retrieves global file information
\li \ref h5l::h5lvisit_f - Recursively visits all links starting from a specified group
\li `h5lvisit_by_name_f` - Recursively visits all links starting from a specified group
\li \ref h5p::h5pget_no_selection_io_cause_f - Retrieves the cause for not performing selection or vector I/O on the last parallel I/O call
\li \ref h5p::h5pget_mpio_no_collective_cause_f - Retrieves local and global causes that broke collective I/O on the last parallel I/O call
\li `h5sselect_shape_same_f` - Checks if two selections are the same shape
\li `h5sselect_intersect_block_f` - Checks if current selection intersects with a block
\li \ref h5p::h5pget_file_space_page_size_f - Gets the file space page size for a file creation property list
\li \ref h5p::h5pset_file_space_page_size_f - Sets the file space page size for a file creation property list
\li \ref h5p::h5pget_file_space_strategy_f - Gets the file space handling strategy and persisting free-space values for a file creation property list
\li `h5pset_file_space_strategy_f` - Sets the file space handling strategy and persisting free-space values for a file creation property list
In addition, there are other new Fortran functions including the Fortran async APIs
and the Fortran VOL capability definitions.
@@ -148,10 +148,10 @@ Following are the new APIs introduced in HDF5-1.14.1.
\li #H5Pset_selection_io - Sets the selection I/O mode
<h4>In the Fortran Interface</h4>
\li #h5p.h5pget_modify_write_buf_f - Retrieves the "modify write buffer" property
\li #h5p.h5pget_selection_io_f - Retrieves the selection I/O mode
\li #h5p.h5pset_modify_write_buf_f - Allows the library to modify the contents of the write buffer
\li #h5p.h5pset_selection_io_f - Sets the selection I/O mode
\li \ref h5p::h5pget_modify_write_buf_f - Retrieves the "modify write buffer" property
\li \ref h5p::h5pget_selection_io_f - Retrieves the selection I/O mode
\li \ref h5p::h5pset_modify_write_buf_f - Allows the library to modify the contents of the write buffer
\li \ref h5p::h5pset_selection_io_f - Sets the selection I/O mode
\subsection subsec_rel_spec_114_change_0versus12_2 Release 1.14.0 versus Release 1.12.2
+19 -35
View File
@@ -144,25 +144,17 @@ add_executable (H5match_types
target_include_directories (H5match_types PRIVATE "${HDF5_SRC_BINARY_DIR};${HDF5_SRC_INCLUDE_DIRS};${HDF5_F90_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
# check if a pre-generated H5fortran_types.F90 file is present
if (NOT EXISTS "${HDF5_GENERATED_SOURCE_DIR}/H5fortran_types.F90")
if (CMAKE_CROSSCOMPILING AND NOT CMAKE_CROSSCOMPILING_EMULATOR)
message (FATAL_ERROR "No pre-generated H5fortran_types.F90 file found - cannot generate without cross-compiling emulator")
endif ()
message (STATUS "No pre-generated H5fortran_types.F90 file found - generating one")
# execute the H5match_types program
if (CMAKE_CROSSCOMPILING)
add_custom_command (TARGET H5match_types POST_BUILD
BYPRODUCTS ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90
COMMAND ${CMAKE_COMMAND}
ARGS -E env ${CROSSCOMPILING_PATH}
COMMAND $<TARGET_FILE:H5match_types>
WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
COMMENT "Generating the H5fortran_types.F90 and H5f90i_gen.h files"
)
else ()
add_custom_command (TARGET H5match_types POST_BUILD
BYPRODUCTS ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90
COMMAND $<TARGET_FILE:H5match_types>
WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
COMMENT "Generating the H5fortran_types.F90 and H5f90i_gen.h files"
)
endif ()
add_custom_command (TARGET H5match_types POST_BUILD
BYPRODUCTS ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5match_types>
WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
COMMENT "Generating the H5fortran_types.F90 and H5f90i_gen.h files"
)
else ()
message (STATUS "Using existing pre-generated H5fortran_types.F90 file")
add_custom_command (
@@ -337,24 +329,16 @@ set (f90_F_GEN_SOURCES
)
# check if a pre-generated H5fortran_types.F90 file is present
if (NOT EXISTS "${HDF5_GENERATED_SOURCE_DIR}/H5_gen.F90")
message (STATUS "No pre-generated H5_gen.F90 file found - generating one")
if (CMAKE_CROSSCOMPILING)
add_custom_command (TARGET H5_buildiface POST_BUILD
BYPRODUCTS ${HDF5_F90_BINARY_DIR}/H5_gen.F90
COMMAND ${CMAKE_COMMAND}
ARGS -E env ${CROSSCOMPILING_PATH}
COMMAND $<TARGET_FILE:H5_buildiface>
WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
COMMENT "Generating the H5_gen.F90 file"
)
else ()
add_custom_command (TARGET H5_buildiface POST_BUILD
BYPRODUCTS ${HDF5_F90_BINARY_DIR}/H5_gen.F90
COMMAND $<TARGET_FILE:H5_buildiface>
WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
COMMENT "Generating the H5_gen.F90 file"
)
if (CMAKE_CROSSCOMPILING AND NOT CMAKE_CROSSCOMPILING_EMULATOR)
message (FATAL_ERROR "No pre-generated H5_gen.F90 file found - cannot generate without cross-compiling emulator")
endif ()
message (STATUS "No pre-generated H5_gen.F90 file found - generating one")
add_custom_command (TARGET H5_buildiface POST_BUILD
BYPRODUCTS ${HDF5_F90_BINARY_DIR}/H5_gen.F90
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5_buildiface>
WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
COMMENT "Generating the H5_gen.F90 file"
)
else ()
message (STATUS "Using existing pre-generated H5_gen.F90 file")
add_custom_command (
@@ -662,7 +646,7 @@ if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
endif ()
set (_PKG_CONFIG_EXTRA_CFLAGS)
set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_LIBS "-l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
set (_PKG_CONFIG_LIBS_PRIVATE "-l${HDF5_F90_C_LIB_NAME}")
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
+5 -1
View File
@@ -151,7 +151,9 @@ CONTAINS
SUBROUTINE h5fdsubfiling_get_file_mapping_f(file_id, filenames, num_files, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id
#ifdef H5_FORTRAN_HAVE_CHAR_ALLOC
#ifdef H5_DOXYGEN
CHARACTER(LEN=:), ALLOCATABLE, DIMENSION(:), INTENT(OUT) :: filenames
#elif defined(H5_FORTRAN_HAVE_CHAR_ALLOC)
CHARACTER(LEN=:), ALLOCATABLE, DIMENSION(:), INTENT(OUT) :: filenames
#else
INTEGER, PARAMETER :: DEFAULT_MAX_LEN = 8192
@@ -160,6 +162,7 @@ SUBROUTINE h5fdsubfiling_get_file_mapping_f(file_id, filenames, num_files, hdfer
INTEGER(SIZE_T), INTENT(OUT) :: num_files
INTEGER, INTENT(OUT) :: hdferr
#ifndef H5_DOXYGEN
TYPE(C_PTR) :: filenames_ptr
INTEGER(C_SIZE_T) :: c_num_files
INTEGER(C_INT) :: ret_val
@@ -275,6 +278,7 @@ SUBROUTINE h5fdsubfiling_get_file_mapping_f(file_id, filenames, num_files, hdfer
! Free the C memory allocated by H5FDsubfiling_get_file_mapping
ret_val = h5free_string_array_memory_c(filenames_ptr, c_num_files)
! Note: We ignore the return value of the free function since the main operation succeeded
#endif
END SUBROUTINE h5fdsubfiling_get_file_mapping_f
+9 -17
View File
@@ -103,24 +103,16 @@ if (HDF5_ENABLE_FORMATTERS)
endif ()
if (NOT EXISTS "${HDF5_GENERATED_SOURCE_DIR}/tf_gen.F90")
message (STATUS "No pre-generated tf_gen.F90 file found - generating one")
if (CMAKE_CROSSCOMPILING)
add_custom_command (TARGET H5_test_buildiface POST_BUILD
BYPRODUCTS ${HDF5_FORTRAN_TESTS_BINARY_DIR}/tf_gen.F90
COMMAND ${CMAKE_COMMAND}
ARGS -E env ${CROSSCOMPILING_PATH}
COMMAND $<TARGET_FILE:H5_test_buildiface>
WORKING_DIRECTORY ${HDF5_FORTRAN_TESTS_BINARY_DIR}
COMMENT "Generating the tf_gen.F90 static file"
)
else ()
add_custom_command (TARGET H5_test_buildiface POST_BUILD
BYPRODUCTS ${HDF5_FORTRAN_TESTS_BINARY_DIR}/tf_gen.F90
COMMAND $<TARGET_FILE:H5_test_buildiface>
WORKING_DIRECTORY ${HDF5_FORTRAN_TESTS_BINARY_DIR}
COMMENT "Generating the tf_gen.F90 static file"
)
if (CMAKE_CROSSCOMPILING AND NOT CMAKE_CROSSCOMPILING_EMULATOR)
message (FATAL_ERROR "No pre-generated tf_gen.F90 file found - cannot generate without cross-compiling emulator")
endif ()
message (STATUS "No pre-generated tf_gen.F90 file found - generating one")
add_custom_command (TARGET H5_test_buildiface POST_BUILD
BYPRODUCTS ${HDF5_FORTRAN_TESTS_BINARY_DIR}/tf_gen.F90
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5_test_buildiface>
WORKING_DIRECTORY ${HDF5_FORTRAN_TESTS_BINARY_DIR}
COMMENT "Generating the tf_gen.F90 static file"
)
else ()
message (STATUS "Using existing pre-generated tf_gen.F90 file")
add_custom_command (
-6
View File
@@ -92,7 +92,6 @@ endif ()
#set_tests_properties (FORTRAN_testhdf5_fortran PROPERTIES PASS_REGULAR_EXPRESSION "[ ]*0 error.s")
set_tests_properties (FORTRAN_testhdf5_fortran PROPERTIES
FIXTURES_REQUIRED clear_testhdf5_fortran
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if ("FORTRAN_testhdf5_fortran" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (FORTRAN_testhdf5_fortran PROPERTIES DISABLED true)
@@ -119,7 +118,6 @@ endif ()
set_tests_properties (FORTRAN_testhdf5_fortran_1_8 PROPERTIES
DEPENDS FORTRAN_testhdf5_fortran
FIXTURES_REQUIRED clear_testhdf5_fortran
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if ("FORTRAN_testhdf5_fortran_1_8" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (FORTRAN_testhdf5_fortran_1_8 PROPERTIES DISABLED true)
@@ -146,7 +144,6 @@ endif ()
set_tests_properties (FORTRAN_fortranlib_test_F03 PROPERTIES
DEPENDS FORTRAN_testhdf5_fortran_1_8
FIXTURES_REQUIRED clear_testhdf5_fortran
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if ("FORTRAN_fortranlib_test_F03" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (FORTRAN_fortranlib_test_F03 PROPERTIES DISABLED true)
@@ -171,7 +168,6 @@ else ()
endif ()
set_tests_properties (FORTRAN_vol_connector PROPERTIES
FIXTURES_REQUIRED clear_testhdf5_fortran
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if ("FORTRAN_vol_connector" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (FORTRAN_vol_connector PROPERTIES DISABLED true)
@@ -188,7 +184,6 @@ add_test (
)
set_tests_properties (FORTRAN_fflush1 PROPERTIES
DEPENDS FORTRAN_flush1-clear-objects
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if ("FORTRAN_fflush1" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (FORTRAN_fflush1 PROPERTIES DISABLED true)
@@ -200,7 +195,6 @@ add_test (
COMMAND $<TARGET_FILE:fflush2>
)
set_tests_properties (FORTRAN_fflush2 PROPERTIES
ENVIRONMENT "${CROSSCOMPILING_PATH}"
DEPENDS FORTRAN_fflush1
)
if ("FORTRAN_fflush2" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
+1 -1
View File
@@ -106,7 +106,7 @@ if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
endif ()
set (_PKG_CONFIG_EXTRA_CFLAGS)
set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_LIBS "-l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_REQUIRES "${HDF5_CPP_LIB_NAME} = ${HDF5_PACKAGE_VERSION}, ${HDF5_HL_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
set (_PKG_CONFIG_LIBS_PRIVATE)
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_CPP_LIB_NAME} = ${HDF5_PACKAGE_VERSION}, ${HDF5_HL_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
-1
View File
@@ -44,7 +44,6 @@ else ()
endif ()
set_tests_properties (HL_CPP_ptableTest PROPERTIES
DEPENDS HL_CPP_ptableTest-clear-objects
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if ("HL_CPP_ptableTest" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (HL_CPP_ptableTest PROPERTIES DISABLED true)
+10 -18
View File
@@ -123,24 +123,16 @@ set (HDF5_HL_F90_F_BASE_SOURCES
)
if (NOT EXISTS "${HDF5_GENERATED_SOURCE_DIR}/H5LTff_gen.F90")
message (STATUS "No pre-generated H5LTff_gen.F90 H5TBff_gen.F90 file found - generating one")
if (CMAKE_CROSSCOMPILING)
add_custom_command (TARGET H5HL_buildiface POST_BUILD
BYPRODUCTS ${HDF5_HL_F90_BINARY_DIR}/H5LTff_gen.F90 ${HDF5_HL_F90_BINARY_DIR}/H5TBff_gen.F90
COMMAND ${CMAKE_COMMAND}
ARGS -E env ${CROSSCOMPILING_PATH}
COMMAND $<TARGET_FILE:H5HL_buildiface>
WORKING_DIRECTORY ${HDF5_HL_F90_BINARY_DIR}
COMMENT "Generating the H5LTff_gen.F90, H5TBff_gen.F90 files"
)
else ()
add_custom_command (TARGET H5HL_buildiface POST_BUILD
BYPRODUCTS ${HDF5_HL_F90_BINARY_DIR}/H5LTff_gen.F90 ${HDF5_HL_F90_BINARY_DIR}/H5TBff_gen.F90
COMMAND $<TARGET_FILE:H5HL_buildiface>
WORKING_DIRECTORY ${HDF5_HL_F90_BINARY_DIR}
COMMENT "Generating the H5LTff_gen.F90, H5TBff_gen.F90 files"
)
if (CMAKE_CROSSCOMPILING AND NOT CMAKE_CROSSCOMPILING_EMULATOR)
message (FATAL_ERROR "No pre-generated H5LTff_gen.F90 H5TBff_gen.F90 file found - cannot generate without cross-compiling emulator")
endif ()
message (STATUS "No pre-generated H5LTff_gen.F90 H5TBff_gen.F90 file found - generating one")
add_custom_command (TARGET H5HL_buildiface POST_BUILD
BYPRODUCTS ${HDF5_HL_F90_BINARY_DIR}/H5LTff_gen.F90 ${HDF5_HL_F90_BINARY_DIR}/H5TBff_gen.F90
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:H5HL_buildiface>
WORKING_DIRECTORY ${HDF5_HL_F90_BINARY_DIR}
COMMENT "Generating the H5LTff_gen.F90, H5TBff_gen.F90 files"
)
else ()
message (STATUS "Using existing pre-generated H5LTff_gen.F90 H5TBff_gen.F90 file")
add_custom_command (
@@ -381,7 +373,7 @@ if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
endif ()
set (_PKG_CONFIG_EXTRA_CFLAGS)
set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_LIBS "-l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_REQUIRES "${HDF5_F90_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
set (_PKG_CONFIG_LIBS_PRIVATE "-l${HDF5_HL_F90_C_LIB_NAME}")
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_F90_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
-1
View File
@@ -67,7 +67,6 @@ macro (ADD_H5_FORTRAN_TEST file)
set_tests_properties (HL_FORTRAN_f90_${file} PROPERTIES
FIXTURES_REQUIRED clear_HL_FORTRAN_test
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
ENVIRONMENT "${CROSSCOMPILING_PATH}"
)
if ("HL_FORTRAN_f90_${file}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (HL_FORTRAN_f90_${file} PROPERTIES DISABLED true)
+1 -1
View File
@@ -139,7 +139,7 @@ if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
endif ()
set (_PKG_CONFIG_EXTRA_CFLAGS)
set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_LIBS "-l${PKG_CONFIG_LIBNAME}")
set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
set (_PKG_CONFIG_LIBS_PRIVATE)
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
+1 -1
View File
@@ -133,7 +133,7 @@ macro (HL_ADD_TEST hl_name)
endif ()
set_tests_properties (${current_test_name} PROPERTIES
FIXTURES_REQUIRED clear_test_hl
ENVIRONMENT "srcdir=${HDF5_HL_TEST_BINARY_DIR};${CROSSCOMPILING_PATH}"
ENVIRONMENT "srcdir=${HDF5_HL_TEST_BINARY_DIR}"
WORKING_DIRECTORY ${HDF5_HL_TEST_BINARY_DIR}
)
if ("HL_${hl_name}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")

Some files were not shown because too many files have changed in this diff Show More