mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
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.
116 lines
3.8 KiB
YAML
116 lines
3.8 KiB
YAML
name: hdf5 dev icx CI
|
|
|
|
# Triggers the workflow on a call from another workflow
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
build_mode:
|
|
description: "release vs. debug build"
|
|
required: true
|
|
type: string
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
CTEST_OUTPUT_ON_FAILURE: 1
|
|
|
|
jobs:
|
|
intel_oneapi_linux:
|
|
name: "linux-oneapi ${{ inputs.build_mode }}"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Get Sources (Linux)
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
|
|
- name: Install Dependencies (Linux)
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install ninja-build graphviz
|
|
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
|
|
|
|
- name: Install oneAPI (Linux)
|
|
uses: fortran-lang/setup-fortran@47809fdb6e637da656ce9ada436527b240c1287f # v1
|
|
id: setup-fortran
|
|
with:
|
|
compiler: intel
|
|
version: '2025.2'
|
|
|
|
- name: Configure (Linux)
|
|
shell: bash
|
|
env:
|
|
FC: ${{ steps.setup-fortran.outputs.fc }}
|
|
CC: ${{ steps.setup-fortran.outputs.cc }}
|
|
run: |
|
|
mkdir "${{ runner.workspace }}/build"
|
|
cd "${{ runner.workspace }}/build"
|
|
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake -G Ninja --log-level=VERBOSE \
|
|
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
|
|
-DHDF5_BUILD_FORTRAN:BOOL=ON \
|
|
-DHDF5_BUILD_CPP_LIB:BOOL=ON \
|
|
${{ github.workspace }}
|
|
|
|
- name: Build (Linux)
|
|
shell: bash
|
|
env:
|
|
FC: ${{ steps.setup-fortran.outputs.fc }}
|
|
CC: ${{ steps.setup-fortran.outputs.cc }}
|
|
run: |
|
|
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
|
working-directory: ${{ runner.workspace }}/build
|
|
|
|
- name: Run Tests (Linux)
|
|
shell: bash
|
|
env:
|
|
FC: ${{ steps.setup-fortran.outputs.fc }}
|
|
CC: ${{ steps.setup-fortran.outputs.cc }}
|
|
run: |
|
|
ctest . --parallel 2 -C ${{ inputs.build_mode }}
|
|
working-directory: ${{ runner.workspace }}/build
|
|
|
|
Intel_oneapi_windows:
|
|
name: "windows-oneapi ${{ inputs.build_mode }}"
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Get Sources (Windows)
|
|
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
|
|
- name: Install Dependencies (Windows)
|
|
run: choco install ninja
|
|
|
|
- name: install oneAPI (Windows)
|
|
uses: fortran-lang/setup-fortran@47809fdb6e637da656ce9ada436527b240c1287f # v1
|
|
id: setup-fortran
|
|
with:
|
|
compiler: intel
|
|
version: '2025.2'
|
|
|
|
- name: Configure (Windows)
|
|
shell: pwsh
|
|
env:
|
|
FC: ${{ steps.setup-fortran.outputs.fc }}
|
|
CC: ${{ steps.setup-fortran.outputs.cc }}
|
|
run: |
|
|
mkdir "${{ runner.workspace }}/build"
|
|
Set-Location -Path "${{ runner.workspace }}\\build"
|
|
cmake -C ${{ github.workspace }}/config/cmake/cacheinit.cmake -G Ninja -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} -DHDF5_BUILD_FORTRAN=ON -DHDF5_BUILD_CPP_LIB=ON -DLIBAEC_USE_LOCALCONTENT=OFF -DZLIB_USE_LOCALCONTENT=OFF ${{ github.workspace }}
|
|
|
|
- name: Build (Windows)
|
|
shell: pwsh
|
|
env:
|
|
FC: ${{ steps.setup-fortran.outputs.fc }}
|
|
CC: ${{ steps.setup-fortran.outputs.cc }}
|
|
run: |
|
|
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
|
working-directory: ${{ runner.workspace }}/build
|
|
|
|
- name: Run Tests (Windows)
|
|
shell: pwsh
|
|
env:
|
|
FC: ${{ steps.setup-fortran.outputs.fc }}
|
|
CC: ${{ steps.setup-fortran.outputs.cc }}
|
|
run: |
|
|
ctest . --parallel 2 -C ${{ inputs.build_mode }} -E tfloatsattrs
|
|
working-directory: ${{ runner.workspace }}/build
|