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.
106 lines
3.6 KiB
YAML
106 lines
3.6 KiB
YAML
name: hdf5 dev CMake 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:
|
|
build_and_test_linux:
|
|
name: "Ubuntu mingw64-${{ inputs.build_mode }}"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Install CMake 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 Wine64 and dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install -y wine64 winbind
|
|
|
|
# - 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
|
|
|
|
# CMAKE CONFIGURE
|
|
- name: CMake Configure
|
|
run: |
|
|
mkdir "${{ runner.workspace }}/build"
|
|
cd "${{ runner.workspace }}/build"
|
|
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
|
|
-G Ninja \
|
|
--log-level=VERBOSE \
|
|
-DCMAKE_TOOLCHAIN_FILE:STRING=config/toolchain/mingw64.cmake \
|
|
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
|
|
-DHDF5_ENABLE_DOXY_WARNINGS:BOOL=ON \
|
|
-DHDF5_BUILD_DOC:BOOL=ON \
|
|
-DHDF5_BUILD_JAVA:BOOL=OFF \
|
|
-DHDF5_ENABLE_PLUGIN_SUPPORT:BOOL=OFF \
|
|
-DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=ON \
|
|
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=ON \
|
|
-DLIBAEC_USE_LOCALCONTENT:BOOL=OFF \
|
|
-DZLIB_USE_LOCALCONTENT:BOOL=OFF \
|
|
-DHDF5_PACK_EXAMPLES:BOOL=ON \
|
|
-DHDF5_PACKAGE_EXTLIBS:BOOL=ON \
|
|
-DHDF5_TEST_API:BOOL=OFF \
|
|
-DHDF5_USE_PREGEN:BOOL=ON \
|
|
$GITHUB_WORKSPACE
|
|
shell: bash
|
|
|
|
# BUILD
|
|
- name: CMake Build
|
|
run: cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
|
working-directory: ${{ runner.workspace }}/build
|
|
|
|
# RUN TESTS
|
|
# - name: CMake Run Tests
|
|
# run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -E "err_compat|filenotclosed|swmr|cache_api"
|
|
# working-directory: ${{ runner.workspace }}/build
|
|
|
|
# RUN Failing TESTS
|
|
# - name: CMake Run Tests
|
|
# run: ctest . --parallel 2 -C ${{ inputs.build_mode }} -R "err_compat|filenotclosed|swmr|cache_api"
|
|
# working-directory: ${{ runner.workspace }}/build
|
|
# continue-on-error: true
|
|
|
|
- name: CMake Run Package
|
|
run: cpack -C ${{ inputs.build_mode }} -V
|
|
working-directory: ${{ runner.workspace }}/build
|
|
|
|
- name: List files in the space
|
|
run: |
|
|
ls -l ${{ runner.workspace }}/build
|
|
|
|
- name: Save published binary (linux)
|
|
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
|
|
with:
|
|
name: tgz-ubuntu-2404_mingw64-${{ inputs.build_mode }}-binary
|
|
path: ${{ runner.workspace }}/build/HDF5-*-win64.zip
|
|
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
|
|
if: ${{ inputs.build_mode != 'Debug' }}
|