Skip to content

Conversation

@brtnfld
Copy link
Collaborator

@brtnfld brtnfld commented Feb 3, 2026

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:

  1. \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."


Important

Fix Doxygen warnings by adding predefined macros in CMakeLists.txt and adjusting Fortran code for conditional compilation.

  • Doxygen Configuration:
    • Add versioned API macros to DOXYGEN_PREDEFINED in CMakeLists.txt to prevent Doxygen from expanding macros in H5version.h, avoiding multiple @param warnings.
  • Fortran Source:
    • Add #ifdef H5_DOXYGEN condition in H5FDff.F90 to handle Doxygen-specific documentation sections.
    • Adjust h5fdsubfiling_get_file_mapping_f to conditionally compile based on H5_DOXYGEN and H5_FORTRAN_HAVE_CHAR_ALLOC.

This description was created by Ellipsis for c65e24b. You can customize this summary. It will automatically update as commits are pushed.

…he 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."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component - Documentation Doxygen, markdown, etc.

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

3 participants