diff --git a/.github/actions/setup-doxygen/action.yml b/.github/actions/setup-doxygen/action.yml new file mode 100644 index 00000000000..6006a05f873 --- /dev/null +++ b/.github/actions/setup-doxygen/action.yml @@ -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 }} diff --git a/.github/workflows/analysis.yml b/.github/workflows/analysis.yml index b892a38ac43..6aa362be7b7 100644 --- a/.github/workflows/analysis.yml +++ b/.github/workflows/analysis.yml @@ -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 diff --git a/.github/workflows/arm-main.yml b/.github/workflows/arm-main.yml index 41b8f393583..6c4438e5ce1 100644 --- a/.github/workflows/arm-main.yml +++ b/.github/workflows/arm-main.yml @@ -38,10 +38,11 @@ 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 @@ -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: | @@ -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,14 +278,16 @@ 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 with: @@ -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: | diff --git a/.github/workflows/bintest.yml b/.github/workflows/bintest.yml index ed583a3db31..2b3df5de997 100644 --- a/.github/workflows/bintest.yml +++ b/.github/workflows/bintest.yml @@ -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 diff --git a/.github/workflows/cross-compile.yml b/.github/workflows/cross-compile.yml index 5d3f40d5575..bb815058d39 100644 --- a/.github/workflows/cross-compile.yml +++ b/.github/workflows/cross-compile.yml @@ -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: | diff --git a/.github/workflows/ctest.yml b/.github/workflows/ctest.yml index 4a73a0e39b5..a65864eaa49 100644 --- a/.github/workflows/ctest.yml +++ b/.github/workflows/ctest.yml @@ -90,11 +90,6 @@ 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 @@ -246,11 +241,6 @@ jobs: sudo apt-get update sudo apt-get install ninja-build graphviz - - name: Install Dependencies - uses: ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449 # v1 - with: - version: "1.13.2" - - name: Install CMake uses: lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest with: @@ -419,11 +409,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: | @@ -650,7 +635,7 @@ 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 @@ -891,7 +876,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 diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 2e02d403ad4..3cc98d02a64 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -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 diff --git a/.github/workflows/intel.yml b/.github/workflows/intel.yml index 5744c1abf96..ee29f6f4857 100644 --- a/.github/workflows/intel.yml +++ b/.github/workflows/intel.yml @@ -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) diff --git a/.github/workflows/julia.yml b/.github/workflows/julia.yml index f2fde4a8ce5..b46a59e0395 100644 --- a/.github/workflows/julia.yml +++ b/.github/workflows/julia.yml @@ -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 diff --git a/.github/workflows/main-par-spc.yml b/.github/workflows/main-par-spc.yml index 2297178cff5..5544f374689 100644 --- a/.github/workflows/main-par-spc.yml +++ b/.github/workflows/main-par-spc.yml @@ -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 diff --git a/.github/workflows/main-par.yml b/.github/workflows/main-par.yml index 9a3e6750167..67a93f78247 100644 --- a/.github/workflows/main-par.yml +++ b/.github/workflows/main-par.yml @@ -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 diff --git a/.github/workflows/main-spc.yml b/.github/workflows/main-spc.yml index cfad15df43e..f2e6d7379e0 100644 --- a/.github/workflows/main-spc.yml +++ b/.github/workflows/main-spc.yml @@ -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: | diff --git a/.github/workflows/main-static.yml b/.github/workflows/main-static.yml index 5cce5b179cc..c0c57e0760c 100644 --- a/.github/workflows/main-static.yml +++ b/.github/workflows/main-static.yml @@ -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,11 +145,6 @@ 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 with: @@ -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: | diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1d4198a4b17..4d0b3e7b838 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -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,11 +162,6 @@ 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 with: @@ -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 diff --git a/.github/workflows/maven-staging.yml b/.github/workflows/maven-staging.yml index c221cd8745c..0c3465c7cf9 100644 --- a/.github/workflows/maven-staging.yml +++ b/.github/workflows/maven-staging.yml @@ -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) diff --git a/.github/workflows/nvhpc.yml b/.github/workflows/nvhpc.yml index b7388d5ab87..ad5265872aa 100644 --- a/.github/workflows/nvhpc.yml +++ b/.github/workflows/nvhpc.yml @@ -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 diff --git a/.github/workflows/par-script.yml b/.github/workflows/par-script.yml index bad5927b71c..2b287511582 100644 --- a/.github/workflows/par-script.yml +++ b/.github/workflows/par-script.yml @@ -46,11 +46,6 @@ 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 with: @@ -182,11 +177,6 @@ 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 with: @@ -299,11 +289,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: Setup MPI (${{ matrix.mpi }}) id: setup-mpi uses: mpi4py/setup-mpi@8ac56ec7ab12f2dffdcf55ffaf50f1920ebcc004 # v1 diff --git a/.github/workflows/par-source.yml b/.github/workflows/par-source.yml index 935850624b1..67781646d6d 100644 --- a/.github/workflows/par-source.yml +++ b/.github/workflows/par-source.yml @@ -79,11 +79,6 @@ 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 with: @@ -201,11 +196,6 @@ 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 with: diff --git a/.github/workflows/script.yml b/.github/workflows/script.yml index 80e33dee17f..96262c401db 100644 --- a/.github/workflows/script.yml +++ b/.github/workflows/script.yml @@ -44,11 +44,6 @@ 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 @@ -165,11 +160,6 @@ 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 with: @@ -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: | @@ -394,7 +379,7 @@ 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 @@ -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 @@ -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 diff --git a/.github/workflows/testxpr.yml b/.github/workflows/testxpr.yml index 31e0eedfe2c..ecfebe48003 100644 --- a/.github/workflows/testxpr.yml +++ b/.github/workflows/testxpr.yml @@ -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: | diff --git a/.gitignore b/.gitignore index f490deb2cd6..facf067ae73 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,8 @@ src/H5config.h.in /CMakeUserPresets.json HDF5Examples/CMakeUserPresets.json /CLAUDE.md + +# Emacs temporary and lock files +*~ +\#*\# +.\#* diff --git a/CMakeLists.txt b/CMakeLists.txt index f6f2b821586..874a17d7b45 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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") diff --git a/bin/make_vers b/bin/make_vers index 6f93b20510d..888520edfb7 100755 --- a/bin/make_vers +++ b/bin/make_vers @@ -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); } diff --git a/doxygen/CMakeLists.txt b/doxygen/CMakeLists.txt index ca79929b85b..5ffcda17c64 100644 --- a/doxygen/CMakeLists.txt +++ b/doxygen/CMakeLists.txt @@ -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 diff --git a/doxygen/Doxyfile.in b/doxygen/Doxyfile.in index 467663c4633..3a160c1701f 100644 --- a/doxygen/Doxyfile.in +++ b/doxygen/Doxyfile.in @@ -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 diff --git a/doxygen/H5version_doxygen.cmake b/doxygen/H5version_doxygen.cmake new file mode 100644 index 00000000000..e6b0ff9ef9a --- /dev/null +++ b/doxygen/H5version_doxygen.cmake @@ -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" +) diff --git a/doxygen/dox/IntroHDF5.dox b/doxygen/dox/IntroHDF5.dox index b0008355e52..3cb01256179 100644 --- a/doxygen/dox/IntroHDF5.dox +++ b/doxygen/dox/IntroHDF5.dox @@ -268,13 +268,13 @@ are usually similar, see @ref HDF5LIB For example:
USE HDF5| File Interface: | -#h5f.h5fopen_f | +\ref h5f::h5fopen_f |
| Dataset Interface: | -#h5d.h5dopen_f | +\ref h5d::h5dopen_f |
USE HDF5MyGroup
+The first #H5Gcreate/\ref h5g::h5gcreate_f creates the group MyGroup
in the root group of the specified file.
-The second #H5Gcreate/#h5g.h5gcreate_f creates the group Group_A
+The second #H5Gcreate/\ref h5g::h5gcreate_f creates the group Group_A
in the group MyGroup in the root group of the specified
file. Note that the parent group (MyGroup) already exists.
-The third #H5Gcreate/#h5g.h5gcreate_f creates the group Group_B in the specified group.
+The third #H5Gcreate/\ref h5g::h5gcreate_f creates the group Group_B in the specified group.
\subsection secLBGrpCreateNamesExCont File Contents
diff --git a/doxygen/dox/hdf5_1_8.dox b/doxygen/dox/hdf5_1_8.dox
index 5eb173242e0..519da56057e 100644
--- a/doxygen/dox/hdf5_1_8.dox
+++ b/doxygen/dox/hdf5_1_8.dox
@@ -390,7 +390,7 @@ Release 1.8.17 if their removal causes no problems.
h5offsetof 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:
h5ltmake_dataset\*\_f and h5ltread_dataset\*\_f 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.
h5lget_info_by_idx_f (loc_id, group_name, index_field, order, n,
+\li \ref h5l::h5lget_info_by_idx_f - 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) - 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
Fortran Subroutines
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
Function with Changed Behavior
\li H5set_free_list_limits
@@ -1422,7 +1422,7 @@ The following C functions are new for this release and are documented in the \re
Fortran Subroutine
The following subroutine is new in this release:
-\li #h5t.h5tget_native_type_f
+\li \ref h5t::h5tget_native_type_f
New C++ Wrappers
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
Changed Fortran Subroutines
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
Changed Data Structure
\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.
Fortran subroutines
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
C++ wrappers
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
#H5Z_FILTER_SCALEOFFSET
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:
+\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:
- H5Z_FILTER_NBIT_F
- H5Z_FILTER_SCALEOFFSET_F
diff --git a/doxygen/dox/sw_changes_1.10.dox b/doxygen/dox/sw_changes_1.10.dox
index 526535e7fee..3132d1f9606 100644
--- a/doxygen/dox/sw_changes_1.10.dox
+++ b/doxygen/dox/sw_changes_1.10.dox
@@ -168,19 +168,19 @@ The following C++ wrapper was added:
In the Fortran API
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) time_t structure to Fortran DATE AND TIME storage format
+\li `h5gmtime` - converts (C) time_t 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.
Collective Metadata I/O:
-\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.
Fine-tuning the Metadata Cache:
@@ -486,34 +486,34 @@ when processing files employing the VDS feature:
and handles the file and metadata appropriately.
Virtual Dataset or VDS:
-\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.
Supporting Functions:
-\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.
Modified Functions:
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.
Partial Edge Chunks:
diff --git a/doxygen/dox/sw_changes_1.12.dox b/doxygen/dox/sw_changes_1.12.dox
index d25ce7d6769..9a3cc59c696 100644
--- a/doxygen/dox/sw_changes_1.12.dox
+++ b/doxygen/dox/sw_changes_1.12.dox
@@ -176,26 +176,26 @@ list the specific new feature that they were added for.
In the Fortran Interface (main library)
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 h5lget_info_f - The function h5lget_info_f is mapped to #H5Lget_info2.
+\li h5lget_info_by_idx_f - 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 h5oopen_by_token_f - Opens an object in an HDF5 file using its VOL independent token
+\li h5otoken_cmp_f - 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
In the C++ Wrapper
\li H5File::getFileNum - See #H5Fget_fileno
diff --git a/doxygen/dox/sw_changes_1.14.dox b/doxygen/dox/sw_changes_1.14.dox
index 56442aaa48e..7df52fb739f 100644
--- a/doxygen/dox/sw_changes_1.14.dox
+++ b/doxygen/dox/sw_changes_1.14.dox
@@ -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
In the Fortran Interface
-\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
In the Fortran Interface
-\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
diff --git a/fortran/src/H5FDff.F90 b/fortran/src/H5FDff.F90
index a3c4fcfc7b8..69dc2121f32 100644
--- a/fortran/src/H5FDff.F90
+++ b/fortran/src/H5FDff.F90
@@ -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
diff --git a/java/hdf/hdf5lib/H5.java b/java/hdf/hdf5lib/H5.java
index 233cfd67c87..628a543711c 100644
--- a/java/hdf/hdf5lib/H5.java
+++ b/java/hdf/hdf5lib/H5.java
@@ -133,7 +133,7 @@ import org.slf4j.LoggerFactory;
*
*
* void *
- * (i.e., pointer to `Any')
+ * (i.e., pointer to Any)
* Special -- see @ref HDFARRAY
*
*
@@ -194,11 +194,11 @@ import org.slf4j.LoggerFactory;
* @endcode
*
*
- * where ``void *'' means that the data may be any valid numeric type, and is a contiguous block of bytes that
+ * where "void *" means that the data may be any valid numeric type, and is a contiguous block of bytes that
* is the data for a multi-dimensional array. The other parameters describe the dimensions, rank, and datatype
* of the array ondisk (source) and in memory (destination).
*
- * For Java, this ``ANY'' is a problem, as the type of data must always be declared. Furthermore,
+ * For Java, this "ANY" is a problem, as the type of data must always be declared. Furthermore,
* multidimensional arrays are definitely not laid out contiguously in memory. It would be infeasible
* to declare a separate routine for every combination of number type and dimensionality. For that reason, the
* @ref HDFARRAY HDFArray class is used to discover the type, shape, and
@@ -206,7 +206,7 @@ import org.slf4j.LoggerFactory;
* static C order.
*
* The upshot is that any Java array of numbers (either primitive or sub-classes of type Number) can be
- * passed as an ``Object'', and the Java API will translate to and from the appropriate packed array of bytes
+ * passed as an "Object", and the Java API will translate to and from the appropriate packed array of bytes
* needed by the C library. So the function above would be declared:
*
* @code
diff --git a/java/src-jni/hdf/hdf5lib/H5.java b/java/src-jni/hdf/hdf5lib/H5.java
index 3a70628f12c..069e80a0b94 100644
--- a/java/src-jni/hdf/hdf5lib/H5.java
+++ b/java/src-jni/hdf/hdf5lib/H5.java
@@ -108,7 +108,7 @@ import org.slf4j.LoggerFactory;
*
*
* void *
- * (i.e., pointer to `Any')
+ * (i.e., pointer to `Any`)
* Special -- see @ref HDFARRAY
*
*
@@ -181,7 +181,7 @@ import org.slf4j.LoggerFactory;
* static native C order.
*
* The upshot is that any Java array of numbers (either primitive or sub-classes of type Number) can be
- * passed as an ``Object'', and the Java API will translate to and from the appropriate packed array of bytes
+ * passed as an `Object`, and the Java API will translate to and from the appropriate packed array of bytes
* needed by the C library. So the function above would be declared:
*
* @code
diff --git a/src/H5Gpublic.h b/src/H5Gpublic.h
index dd760e152db..3788539c934 100644
--- a/src/H5Gpublic.h
+++ b/src/H5Gpublic.h
@@ -544,7 +544,7 @@ H5_DLL herr_t H5Gclose_async(hid_t group_id, hid_t es_id);
* An object has a certain type. The first few numbers are reserved for use
* internally by HDF5. Users may add their own types with higher values. The
* values are never stored in the file -- they only exist while an application
- * is running. An object may satisfy the `isa' function for more than one type.
+ * is running. An object may satisfy the `isa` function for more than one type.
*
* \deprecated
*/
diff --git a/src/H5Rpublic.h b/src/H5Rpublic.h
index 0ac174fdb5d..6f981ae3860 100644
--- a/src/H5Rpublic.h
+++ b/src/H5Rpublic.h
@@ -639,7 +639,7 @@ H5_DLL ssize_t H5Rget_attr_name(const H5R_ref_t *ref_ptr, char *name, size_t siz
* \param[in] ref Reference to query
*
* \return Returns a valid object type if successful; otherwise returns a
- * negative value (#H5G_UNKNOWN).
+ * negative value (\c H5G_UNKNOWN).
*
* \deprecated This function has been renamed from H5Rget_obj_type() and is
* deprecated in favor of the macro H5Rget_obj_type() or the
diff --git a/src/H5Tdevelop.h b/src/H5Tdevelop.h
index 887e2adb596..dffdff17b38 100644
--- a/src/H5Tdevelop.h
+++ b/src/H5Tdevelop.h
@@ -39,7 +39,7 @@ typedef enum H5T_cmd_t {
} H5T_cmd_t;
/**
- * How is the `bkg' buffer used by the conversion function?
+ * How is the `bkg` buffer used by the conversion function?
*/
typedef enum H5T_bkg_t {
H5T_BKG_NO = 0, /**< background buffer is not needed, send NULL */
diff --git a/src/H5Tmodule.h b/src/H5Tmodule.h
index 9825fba9998..d80b9d573f6 100644
--- a/src/H5Tmodule.h
+++ b/src/H5Tmodule.h
@@ -2011,7 +2011,7 @@ filled according to the value of this property. The padding can be:
* calculates the offset of member \Emph{m} within struct \Emph{s}. Alternatively, the
* `offsetof(s, m)` macro, defined in \Emph{stddef.h}, serves the same purpose as the
* `HOFFSET` macro. For Fortran users, the HDF5 library provides the function
- * \ref h5lib.h5offsetof to determine the offset of a member. To find the size of a
+ * \ref h5lib::h5offsetof to determine the offset of a member. To find the size of a
* scalar derived type, the Fortran function equivalent of the \Emph{sizeof} can be used.
* Note, in the past, the HDF5 Fortran applications had to calculate offsets by using sizes of
* members datatypes and by considering the order of members in the Fortran derived type, thus
diff --git a/src/H5VLmodule.h b/src/H5VLmodule.h
index 638ec509462..3bf75cab07d 100644
--- a/src/H5VLmodule.h
+++ b/src/H5VLmodule.h
@@ -555,19 +555,19 @@
* so the h5o_info_t, etc. structs no longer contain native file format information
* and the callbacks will need to match the non-deprecated, token-enabled versions.
*
- * - @ref h5l.h5lget_info_f
- * - @ref h5l.h5lget_info_by_idx_f
- * - @ref h5l.h5literate_f
- * - @ref h5l.h5literate_by_name_f
- * - @ref h5o.h5oget_info_f
- * - @ref h5o.h5oget_info_by_idx_f
- * - @ref h5o.h5oget_info_by_name_f
- * - @ref h5o.h5oopen_by_token_f
- * - @ref h5o.h5ovisit_f
- * - @ref h5o.h5ovisit_by_name_f
+ * - \ref h5l::h5lget_info_f
+ * - \ref h5l::h5lget_info_by_idx_f
+ * - \ref h5l::h5literate_f
+ * - \ref h5l::h5literate_by_name_f
+ * - \ref h5o::h5oget_info_f
+ * - \ref h5o::h5oget_info_by_idx_f
+ * - \ref h5o::h5oget_info_by_name_f
+ * - \ref h5o::h5oopen_by_token_f
+ * - \ref h5o::h5ovisit_f
+ * - \ref h5o::h5ovisit_by_name_f
*
*
- * Additionally, \ref h5f.h5fis_hdf5_f was updated to use \ref H5Fis_accessible internally,
+ * Additionally, \ref h5f::h5fis_hdf5_f was updated to use \ref H5Fis_accessible internally,
* though with the same caveat as the C++ implementation: the default fapl is
* always passed in so arbitrary VOL connectors will only work if the default VOL
* connector is changed via the environment variable.