diff --git a/.github/workflows/cmake-ctest.yml b/.github/workflows/cmake-ctest.yml index fcf780fa5ea..ade0cff4556 100644 --- a/.github/workflows/cmake-ctest.yml +++ b/.github/workflows/cmake-ctest.yml @@ -81,7 +81,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 @@ -220,7 +220,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Set file base name (Linux) id: set-file-base @@ -331,7 +331,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: check clang version shell: bash diff --git a/.github/workflows/cmake-par-script.yml b/.github/workflows/cmake-par-script.yml index 61b9dde0e53..e1888b03248 100644 --- a/.github/workflows/cmake-par-script.yml +++ b/.github/workflows/cmake-par-script.yml @@ -42,7 +42,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 @@ -168,7 +168,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Setup MPI (${{ matrix.mpi }}) id: setup-mpi @@ -279,7 +279,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Setup MPI (${{ matrix.mpi }}) id: setup-mpi diff --git a/.github/workflows/cmake-par-source.yml b/.github/workflows/cmake-par-source.yml index 97b8e2e4d4b..7ab67f5dd66 100644 --- a/.github/workflows/cmake-par-source.yml +++ b/.github/workflows/cmake-par-source.yml @@ -70,7 +70,7 @@ jobs: - name: Install Doxygen uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Set file base name (OpenMPI) id: set-file-base @@ -186,7 +186,7 @@ jobs: - name: Install Doxygen uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Set file base name (MPICH) id: set-file-base diff --git a/.github/workflows/cmake-script.yml b/.github/workflows/cmake-script.yml index 914298d89e9..b6f9799a44d 100644 --- a/.github/workflows/cmake-script.yml +++ b/.github/workflows/cmake-script.yml @@ -35,7 +35,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 @@ -140,7 +140,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Set file base name (Linux) id: set-file-base @@ -230,7 +230,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: check clang version shell: bash diff --git a/.github/workflows/main-cmake.yml b/.github/workflows/main-cmake.yml index 37d441d6c4e..c8739ae58c5 100644 --- a/.github/workflows/main-cmake.yml +++ b/.github/workflows/main-cmake.yml @@ -146,7 +146,7 @@ jobs: - name: Install Dependencies uses: ssciwr/doxygen-install@v1 with: - version: "1.9.7" + version: "1.13.2" - name: Set environment for MSVC (Windows) run: | diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 7d9199f1fa2..928ae146c8b 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -407,7 +407,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES) endif () find_program (RPMBUILD_EXE rpmbuild) - if (RPMBUILD_EXE) + if (RPMBUILD_EXE AND NOT HDF_ENABLE_PARALLEL) list (APPEND CPACK_GENERATOR "RPM") set (CPACK_RPM_PACKAGE_RELEASE "1") set (CPACK_RPM_PACKAGE_RELEASE_DIST ON) diff --git a/CMakeLists.txt b/CMakeLists.txt index 10e0b8d7fa7..55593c147a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1084,7 +1084,7 @@ if (HDF5_BUILD_DOC AND EXISTS "${HDF5_DOXYGEN_DIR}" AND IS_DIRECTORY "${HDF5_DOX option (HDF5_ENABLE_DOXY_WARNINGS "Enable fail if doxygen parsing has warnings." OFF) mark_as_advanced (HDF5_ENABLE_DOXY_WARNINGS) if (HDF5_ENABLE_DOXY_WARNINGS) - set (HDF5_DOXY_WARNINGS "FAIL_ON_WARNINGS") + set (HDF5_DOXY_WARNINGS "FAIL_ON_WARNINGS_PRINT") else () set (HDF5_DOXY_WARNINGS "NO") endif () diff --git a/README.md b/README.md index 2ccc5489c07..43f2f6354ab 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ HDF5 version 2.0.0 currently under development -![HDF5 Logo](doxygen/img/HDF5.png) +![HDF5 Logo][u3] [![develop cmake build status](https://img.shields.io/github/actions/workflow/status/HDFGroup/hdf5/cmake.yml?branch=develop&label=HDF5%20develop%20CMake%20CI)](https://github.com/HDFGroup/hdf5/actions/workflows/cmake.yml?query=branch%3Adevelop) [![develop autotools build status](https://img.shields.io/github/actions/workflow/status/HDFGroup/hdf5/autotools.yml?branch=develop&label=HDF5%20develop%20Autotools%20CI)](https://github.com/HDFGroup/hdf5/actions/workflows/autotools.yml?query=branch%3Adevelop) @@ -40,10 +40,10 @@ The latest Doxygen documentation generated on changes to `develop`, which does * https://hdfgroup.github.io/hdf5/develop -See the [RELEASE.txt](release_docs/RELEASE.txt) file in the [release_docs/](release_docs/) directory for information specific +See the [RELEASE.txt][u1] file in the [release_docs/][u4] directory for information specific to the features and updates included in this release of the library. -Several more files are located within the [release_docs/](release_docs/) directory with specific +Several more files are located within the [release_docs/][u4] directory with specific details for several common platforms and configurations. INSTALL - Start Here. General instructions for compiling and installing the library @@ -80,7 +80,7 @@ conversation. Please read the [instructions](https://forum.hdfgroup.org/t/quick RELEASE SCHEDULE ---------------- -![HDF5 release schedule](doc/img/release-schedule.png) +![HDF5 release schedule][u2] HDF5 does not follow a regular release schedule. Instead, updates are based on the introduction of new features and the resolution of bugs. However, we aim to have at @@ -120,3 +120,8 @@ Development code is available at our Github location: https://github.com/HDFGroup/hdf5.git +[u1]: https://github.com/HDFGroup/hdf5/blob/develop/release_docs/RELEASE.txt +[u2]: https://github.com/HDFGroup/hdf5/blob/develop/doc/img/release-schedule.png +[u3]: https://github.com/HDFGroup/hdf5/blob/develop/doxygen/img/HDF5.png +[u4]: https://github.com/HDFGroup/hdf5/blob/develop/release_docs + diff --git a/config/cmake/HDFLibMacros.cmake b/config/cmake/HDFLibMacros.cmake index f85fb42c51b..0a326dade51 100644 --- a/config/cmake/HDFLibMacros.cmake +++ b/config/cmake/HDFLibMacros.cmake @@ -17,11 +17,16 @@ macro (EXTERNAL_ZLIB_LIBRARY compress_type) set (zlib_folder "ZLIB") endif () if (${compress_type} MATCHES "GIT") + if (${ZLIB_BRANCH} MATCHES "develop") + set (ZLIB_FILE "devCMakeLists") + else () + set (ZLIB_FILE "CMakeLists") + endif () FetchContent_Declare (HDF5_ZLIB GIT_REPOSITORY ${ZLIB_URL} GIT_TAG ${ZLIB_BRANCH} PATCH_COMMAND ${CMAKE_COMMAND} -E copy - ${HDF_RESOURCES_DIR}/${zlib_folder}/CMakeLists.txt + ${HDF_RESOURCES_DIR}/${zlib_folder}/${ZLIB_FILE}.txt /CMakeLists.txt ) elseif (${compress_type} MATCHES "TGZ") diff --git a/config/cmake/README.md.cmake.in b/config/cmake/README.md.cmake.in index 82cb082c444..0a8a986f02e 100644 --- a/config/cmake/README.md.cmake.in +++ b/config/cmake/README.md.cmake.in @@ -75,6 +75,6 @@ For more information see USING_CMake_Examples.txt in the install folder. =========================================================================== Documentation for this release can be found at the following URL: - https://support.hdfgroup.org/releases/hdf5/@${H5_VERS_MAJOR}@_@${H5_VERS_MINOR}@/@${H5_VERS_MAJOR}@_@${H5_VERS_MINOR}@_@${H5_VERS_RELEASE}@/documentation/doxygen/index.html + https://support.hdfgroup.org/releases/hdf5/@H5_VERS_MAJOR@_@H5_VERS_MINOR@/@H5_VERS_MAJOR@_@H5_VERS_MINOR@_@H5_VERS_RELEASE@/documentation/doxygen/index.html Bugs should be reported to help@hdfgroup.org. diff --git a/config/cmake/ZLIB/devCMakeLists.txt b/config/cmake/ZLIB/devCMakeLists.txt new file mode 100644 index 00000000000..78f5321a45b --- /dev/null +++ b/config/cmake/ZLIB/devCMakeLists.txt @@ -0,0 +1,386 @@ +cmake_minimum_required (VERSION 3.18) + +project( + ZLIB + LANGUAGES C + VERSION 1.4.1.1 + HOMEPAGE_URL "https://zlib.net/" + DESCRIPTION "a general-purpose lossless data-compression library") +set (CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) + +#----------------------------------------------------------------------------- +# Basic ZLIB stuff here +#----------------------------------------------------------------------------- +set (CMAKE_POSITION_INDEPENDENT_CODE ON) + +set (ZLIB_PACKAGE_EXT ${HDF_PACKAGE_EXT}) +set (HDF_USE_GNU_DIRS ${HDF5_USE_GNU_DIRS}) +set (CMAKE_OSX_ARCHITECTURES ${CMAKE_OSX_ARCHITECTURES}) +set (CMAKE_TOOLCHAIN_FILE ${CMAKE_TOOLCHAIN_FILE}) +set (PACKAGE_NAMESPACE ${HDF_PACKAGE_NAMESPACE}) +if (MINGW) + set (WINDOWS 1) # MinGW tries to imitate Windows +endif () +if (WINDOWS) + set (HAVE_STDDEF_H 1) + set (HAVE_SYS_TYPES_H 1) +endif () +# ============================================================================ +# configuration +# ============================================================================ + +option(ZLIB_BUILD_TESTING "Enable Zlib Examples as tests" OFF) +option(ZLIB_BUILD_SHARED "Enable building zlib shared library" OFF) +option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON) +option(ZLIB_BUILD_MINIZIP "Enable building libminizip contrib library" OFF) +option(ZLIB_INSTALL "Enable installation of zlib" OFF) +option(ZLIB_PREFIX "prefix for all types and library functions, see zconf.h.in" + OFF) +mark_as_advanced(ZLIB_PREFIX) + +if(WIN32) + option(ZLIB_INSTALL_COMPAT_DLL "Install a copy as zlib1.dll" ON) +endif(WIN32) + +get_property(IS_MULTI GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + +if(NOT DEFINED CMAKE_BUILD_TYPE AND NOT IS_MULTI) + message(STATUS "No CMAKE_BUILD_TYPE set -- using Release") + set(CMAKE_BUILD_TYPE Release) +endif(NOT DEFINED CMAKE_BUILD_TYPE AND NOT IS_MULTI) + +include(CheckCSourceCompiles) +include(CheckFunctionExists) +include(CheckIncludeFile) +include(CMakePackageConfigHelpers) +include(CheckTypeSize) +include(CPack) +include(GNUInstallDirs) + +set(CPACK_INCLUDED FALSE) + +if(NOT ZLIB_CONF_WRITTEN) + set(Z_PREFIX ${ZLIB_PREFIX}) + set(CONF_OUT_FILE ${ZLIB_BINARY_DIR}/zconf.h.cmakein) + file(READ ${ZLIB_SOURCE_DIR}/zconf.h ZCONF_CONTENT LIMIT 245) + file(WRITE ${CONF_OUT_FILE} ${ZCONF_CONTENT}) + file(APPEND ${CONF_OUT_FILE} "#cmakedefine Z_PREFIX 1\n") + file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_STDARG_H 1\n") + file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_UNISTD_H 1\n") + file(READ ${ZLIB_SOURCE_DIR}/zconf.h ZCONF_CONTENT OFFSET 244) + set(FIRST_ITEM TRUE) + + foreach(item IN LISTS ZCONF_CONTENT) + if(FIRST_ITEM) + string(APPEND OUT_CONTENT ${item}) + set(FIRST_ITEM FALSE) + else(FIRST_ITEM) + string(APPEND OUT_CONTENT "\;" ${item}) + endif(FIRST_ITEM) + endforeach(item IN LISTS ${ZCONF_CONTENT}) + + file(APPEND ${CONF_OUT_FILE} ${OUT_CONTENT}) + set(ZLIB_CONF_WRITTEN + TRUE + CACHE BOOL "zconf.h.cmakein was created") + mark_as_advanced(ZLIB_CONF_WRITTEN) +endif(NOT ZLIB_CONF_WRITTEN) + +# +# Check to see if we have large file support +# +set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) +check_type_size(off64_t OFF64_T) +unset(CMAKE_REQUIRED_DEFINITIONS) # clear variable + +# +# Check for fseeko +# +check_function_exists(fseeko HAVE_FSEEKO) + +# +# Check for stdarg.h +# +check_include_file(stdarg.h HAVE_STDARG_H) + +# +# Check for unistd.h +# +check_include_file(unistd.h HAVE_UNISTD_H) + +# +# Check visibility attribute is supported +# +if(MSVC) + set(CMAKE_REQUIRED_FLAGS "-WX") +else(MSVC) + set(CMAKE_REQUIRED_FLAGS "-WError") +endif(MSVC) + +check_c_source_compiles( + " + #include + static void f(void) __attribute__ ((visibility(\"hidden\"))); + int main(void) {return 0;} + " + HAVE___ATTR__VIS_HIDDEN) + +unset(CMAKE_COMPILE_FLAGS) +set(ZLIB_PC ${ZLIB_BINARY_DIR}/zlib.pc) +configure_file(${ZLIB_SOURCE_DIR}/zlib.pc.cmakein ${ZLIB_PC} @ONLY) +configure_file(${ZLIB_BINARY_DIR}/zconf.h.cmakein ${ZLIB_BINARY_DIR}/zconf.h) +include_directories(${ZLIB_BINARY_DIR} ${ZLIB_SOURCE_DIR}) + +#----------------------------------------------------------------------------- +# Define some CMake variables for use later in the project +#----------------------------------------------------------------------------- +set (ZLIB_RESOURCES_DIR ${HDF_RESOURCES_DIR}/ZLIB) +set (ZLIB_SRC_DIR ${ZLIB_SOURCE_DIR}) + +#----------------------------------------------------------------------------- +# Set the core names of all the libraries +#----------------------------------------------------------------------------- +set (ZLIB_LIB_CORENAME "zlib-static") + +#----------------------------------------------------------------------------- +# Set the true names of all the libraries if customized by external project +#----------------------------------------------------------------------------- +set (ZLIB_LIB_NAME "${ZLIB_EXTERNAL_LIB_PREFIX}${ZLIB_LIB_CORENAME}") + +#----------------------------------------------------------------------------- +# Set the target names of all the libraries +#----------------------------------------------------------------------------- +set (ZLIB_LIB_TARGET "zlib-static") + +set (zlib_VERS_MAJOR 1) +set (zlib_VERS_MINOR 4) +set (zlib_VERS_RELEASE 1) + +#----------------------------------------------------------------------------- +set (ZLIB_PACKAGE "zlib") +set (ZLIB_PACKAGE_NAME "ZLIB") +set (ZLIB_PACKAGE_VERSION "${zlib_VERS_MAJOR}.${zlib_VERS_MINOR}") +set (ZLIB_PACKAGE_VERSION_MAJOR "${zlib_VERS_MAJOR}.${zlib_VERS_MINOR}") +set (ZLIB_PACKAGE_VERSION_MINOR "${zlib_VERS_RELEASE}") +set (ZLIB_PACKAGE_STRING "${ZLIB_PACKAGE_NAME} ${ZLIB_PACKAGE_VERSION}") +set (ZLIB_PACKAGE_TARNAME "${ZLIB_PACKAGE_NAME}${ZLIB_PACKAGE_EXT}") +set (ZLIB_PACKAGE_URL "http://www.hdfgroup.org") +set (ZLIB_PACKAGE_BUGREPORT "help@hdfgroup.org") +set (ZLIB_PACKAGE_SOVERSION "${zlib_VERS_MAJOR}.${zlib_VERS_MINOR}.${zlib_VERS_RELEASE}") +set (ZLIB_PACKAGE_SOVERSION_MAJOR "${zlib_VERS_MAJOR}") + +HDF_DIR_PATHS(${ZLIB_PACKAGE_NAME}) + +#----------------------------------------------------------------------------- +# Targets built within this project are exported at Install time for use +# by other projects +#----------------------------------------------------------------------------- +if (NOT ZLIB_EXPORTED_TARGETS) + set (ZLIB_EXPORTED_TARGETS "zlib-targets") +endif () + +set_global_variable (ZLIB_LIBRARIES_TO_EXPORT "") + +#----------------------------------------------------------------------------- +# All libs/tests/examples need the main include directories +#----------------------------------------------------------------------------- +set_directory_properties (PROPERTIES INCLUDE_DIRECTORIES + "${ZLIB_BINARY_DIR};${ZLIB_SOURCE_DIR};${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" +) + +if (MSVC) + set(CMAKE_DEBUG_POSTFIX "d") + add_definitions (-D_BIND_TO_CURRENT_VCLIBS_VERSION=1) + add_definitions (-D_CRT_SECURE_NO_WARNINGS) + add_definitions (-D_CONSOLE) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +endif () + +if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) + # If we're doing an out of source build and the user has a zconf.h + # in their source tree... + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h) + message(VERBOSE "Renaming") + message(VERBOSE " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h") + message(VERBOSE "to 'zconf.h.included' because this file is included with zlib") + message(VERBOSE "but CMake generates it automatically in the build directory.") + file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included) + endif() +endif() +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) + + +#----------------------------------------------------------------------------- +# Define ZLIB Library +#----------------------------------------------------------------------------- + +set(ZLIB_PUBLIC_HDRS ${ZLIB_BINARY_DIR}/zconf.h zlib.h) + +set(ZLIB_PRIVATE_HDRS + crc32.h + deflate.h + gzguts.h + inffast.h + inffixed.h + inflate.h + inftrees.h + trees.h + zutil.h) + +set(ZLIB_SRCS + adler32.c + compress.c + crc32.c + deflate.c + gzclose.c + gzlib.c + gzread.c + gzwrite.c + inflate.c + infback.c + inftrees.c + inffast.c + trees.c + uncompr.c + zutil.c) + +add_library(${ZLIB_LIB_TARGET} STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) + target_include_directories( + ${ZLIB_LIB_TARGET} + PUBLIC $ + $ + $) +target_compile_definitions( + ${ZLIB_LIB_TARGET} + PRIVATE $<$:NO_FSEEKO> + $<$:HAVE_HIDDEN> + $<$:_CRT_SECURE_NO_DEPRECATE> + $<$:_CRT_NONSTDC_NO_DEPRECATE> + $<$:_BIND_TO_CURRENT_VCLIBS_VERSION=1> + $<$:_CRT_SECURE_NO_WARNINGS> + $<$:_CONSOLE> + PUBLIC $<$:_LARGEFILE64_SOURCE=1>) +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 () +set_target_properties(${ZLIB_LIB_TARGET} PROPERTIES + PUBLIC_HEADER "" + LINKER_LANGUAGE C + INTERFACE_INCLUDE_DIRECTORIES "$/include>" +) + +#----------------------------------------------------------------------------- +# Compiler specific flags +#----------------------------------------------------------------------------- +if (CMAKE_C_COMPILER_ID STREQUAL "GNU") + target_compile_options(${ZLIB_LIB_TARGET} PRIVATE -Wno-strict-prototypes -Wno-implicit-function-declaration) +endif () +if (CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang") + target_compile_options(${ZLIB_LIB_TARGET} PRIVATE -Wno-implicit-function-declaration) +endif () +if (CMAKE_C_COMPILER_ID STREQUAL "GNU") + target_compile_options(${ZLIB_LIB_TARGET} PRIVATE -fmessage-length=0) +endif () + +set_target_properties(${ZLIB_LIB_TARGET} PROPERTIES OUTPUT_NAME zlib-static) + +set_global_variable (ZLIB_LIBRARIES_TO_EXPORT "${ZLIB_LIB_TARGET}") +set (install_targets ${ZLIB_LIB_TARGET}) + +#----------------------------------------------------------------------------- +# Add Target(s) to CMake Install for import into other projects +#----------------------------------------------------------------------------- +if (ZLIB_EXPORTED_TARGETS) + install ( + TARGETS + ${install_targets} + EXPORT + ${ZLIB_EXPORTED_TARGETS} + LIBRARY DESTINATION ${ZLIB_INSTALL_LIB_DIR} COMPONENT libraries + ARCHIVE DESTINATION ${ZLIB_INSTALL_LIB_DIR} COMPONENT libraries + RUNTIME DESTINATION ${ZLIB_INSTALL_BIN_DIR} COMPONENT libraries + FRAMEWORK DESTINATION ${ZLIB_INSTALL_FWRK_DIR} COMPONENT libraries + PUBLIC_HEADER DESTINATION ${ZLIB_INSTALL_INCLUDE_DIR} COMPONENT headers + ) +endif () + +include (CMakePackageConfigHelpers) + +#----------------------------------------------------------------------------- +# Configure the zlib-config.cmake file for the build directory +#----------------------------------------------------------------------------- +set (INCLUDE_INSTALL_DIR ${ZLIB_INSTALL_INCLUDE_DIR}) +set (SHARE_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/${ZLIB_INSTALL_CMAKE_DIR}" ) +set (CURRENT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" ) +configure_package_config_file ( + ${ZLIB_RESOURCES_DIR}/zlib-config.cmake.in + "${ZLIB_BINARY_DIR}/zlib-config.cmake" + INSTALL_DESTINATION "${ZLIB_INSTALL_CMAKE_DIR}" + PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR + INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}" +) + +#----------------------------------------------------------------------------- +# Configure the zlib-config.cmake file for the install directory +#----------------------------------------------------------------------------- +set (INCLUDE_INSTALL_DIR ${ZLIB_INSTALL_INCLUDE_DIR}) +set (SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${ZLIB_INSTALL_CMAKE_DIR}" ) +set (CURRENT_BUILD_DIR "${CMAKE_INSTALL_PREFIX}") +configure_package_config_file ( + ${ZLIB_RESOURCES_DIR}/zlib-config.cmake.in + "${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/zlib-config.cmake" + INSTALL_DESTINATION "${ZLIB_INSTALL_CMAKE_DIR}" + PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR +) +if (NOT ZLIB_EXTERNALLY_CONFIGURED) + install ( + FILES ${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/zlib-config.cmake + DESTINATION ${ZLIB_INSTALL_CMAKE_DIR} + COMPONENT configinstall + ) +endif () + +#----------------------------------------------------------------------------- +# Configure the ZLIB-config-version.cmake file for the install directory +#----------------------------------------------------------------------------- +if (NOT ZLIB_EXTERNALLY_CONFIGURED) + configure_file ( + ${ZLIB_RESOURCES_DIR}/zlib-config-version.cmake.in + ${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/zlib-config-version.cmake @ONLY + ) + install ( + FILES ${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/zlib-config-version.cmake + DESTINATION ${ZLIB_INSTALL_CMAKE_DIR} + COMPONENT configinstall + ) +endif () + +#----------------------------------------------------------------------------- +# Add Target(s) to CMake Install for import into other projects +#----------------------------------------------------------------------------- +if (NOT ZLIB_EXTERNALLY_CONFIGURED) + install ( + EXPORT ${ZLIB_EXPORTED_TARGETS} + DESTINATION ${ZLIB_INSTALL_CMAKE_DIR} + FILE zlib-targets.cmake + NAMESPACE ${PACKAGE_NAMESPACE} + COMPONENT configinstall + ) +endif () + +#----------------------------------------------------------------------------- +# Export all exported targets to the build tree for use by parent project +#----------------------------------------------------------------------------- +if (NOT ZLIB_EXTERNALLY_CONFIGURED) + export ( + TARGETS ${ZLIB_LIBRARIES_TO_EXPORT} + FILE zlib-targets.cmake + NAMESPACE ${PACKAGE_NAMESPACE} + ) + export (PACKAGE zlib) +endif () + diff --git a/configure.ac b/configure.ac index 72bc8f91b76..1dea16e42c2 100644 --- a/configure.ac +++ b/configure.ac @@ -1564,7 +1564,7 @@ AC_ARG_ENABLE([doxygen-errors], [DOXY_ERR=$enableval]) if test "X$DOXY_ERR" = "Xyes"; then - HDF5_DOXY_WARNINGS="FAIL_ON_WARNINGS" + HDF5_DOXY_WARNINGS="FAIL_ON_WARNINGS_PRINT" else HDF5_DOXY_WARNINGS="NO" diff --git a/doxygen/Doxyfile.in b/doxygen/Doxyfile.in index 1c3698148d3..7b35cba3de0 100644 --- a/doxygen/Doxyfile.in +++ b/doxygen/Doxyfile.in @@ -1,7 +1,7 @@ # Doxyfile # This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. +# Doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. @@ -44,7 +44,7 @@ PROJECT_NUMBER = @DOXYGEN_VERSION_STRING@ # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = @DOXYGEN_PROJECT_BRIEF@ +PROJECT_BRIEF = "@DOXYGEN_PROJECT_BRIEF@" # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 @@ -55,12 +55,34 @@ PROJECT_LOGO = @DOXYGEN_PROJECT_LOGO@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If +# entered, it will be relative to the location where Doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = @DOXYGEN_OUTPUT_DIRECTORY@ -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# If the CREATE_SUBDIRS tag is set to YES then Doxygen will create up to 4096 +# sub-directories (in 2 levels) under the output directory of each output format +# and will distribute the generated files over these directories. Enabling this +# option can be useful when feeding Doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to +# control the number of sub-directories. +# The default value is: NO. + +CREATE_SUBDIRS = Yes + +# Controls the number of sub-directories that will be created when +# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every +# level increment doubles the number of directories, resulting in 4096 +# directories at level 8 which is the default and also the maximum value. The +# sub-directories are organized in 2 levels, the first level always has a fixed +# number of 16 directories. +# Minimum value: 0, maximum value: 8, default value: 8. +# This tag requires that the tag CREATE_SUBDIRS is set to YES. + +CREATE_SUBDIRS_LEVEL = 8 + +# If the ALLOW_UNICODE_NAMES tag is set to YES, Doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. @@ -69,16 +91,16 @@ OUTPUT_DIRECTORY = @DOXYGEN_OUTPUT_DIRECTORY@ ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this +# documentation generated by Doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, +# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English +# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, +# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with +# English messages), Korean, Korean-en (Korean with English messages), Latvian, +# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, +# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, +# Swedish, Turkish, Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English @@ -104,7 +126,7 @@ ABBREVIATE_BRIEF = "The $name class" \ an \ the -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# If the FULL_PATH_NAMES tag is set to YES, Doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. @@ -114,11 +136,11 @@ FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to +# If left blank the directory from which Doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. +# will be relative from the directory where Doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = @DOXYGEN_STRIP_FROM_PATH@ @@ -132,7 +154,7 @@ STRIP_FROM_PATH = @DOXYGEN_STRIP_FROM_PATH@ STRIP_FROM_INC_PATH = @DOXYGEN_STRIP_FROM_INC_PATH@ -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this @@ -154,16 +176,17 @@ TAB_SIZE = 4 # the documentation. An alias has the form: # name=value # For example adding -# "sideeffect=@par Side Effects:\n" +# "sideeffect=@par Side Effects:^^" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) + ALIASES = @@ -196,27 +219,30 @@ OPTIMIZE_FOR_FORTRAN = YES # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# language is one of the parsers supported by Doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files). For instance to make doxygen treat .inc files +# default for Fortran type files). For instance to make Doxygen treat .inc files # as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. +# the files are not read by Doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. EXTENSION_MAPPING = -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# If the MARKDOWN_SUPPORT tag is enabled then Doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# The output of markdown processing is further processed by Doxygen, so you can +# mix Doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. @@ -226,12 +252,12 @@ MARKDOWN_SUPPORT = YES # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 5. +# Minimum value: 0, maximum value: 99, default value: 6. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 5 -# When enabled doxygen tries to link words that correspond to documented +# When enabled Doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. @@ -290,11 +316,11 @@ TYPEDEF_HIDES_STRUCT = YES # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The +# code, Doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# Doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest +# symbols. At the end of a run Doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. @@ -304,7 +330,7 @@ LOOKUP_CACHE_SIZE = 0 # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# If the EXTRACT_ALL tag is set to YES, Doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. @@ -363,7 +389,7 @@ EXTRACT_LOCAL_METHODS = NO EXTRACT_ANON_NSPACES = NO -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. @@ -371,22 +397,23 @@ EXTRACT_ANON_NSPACES = NO HIDE_UNDOC_MEMBERS = NO -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. +# will also hide undocumented C++ concepts if enabled. This option has no effect +# if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all friend # declarations. If set to NO, these declarations will be included in the # documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. @@ -400,30 +427,38 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# (including Cygwin) ands Mac users are advised to set this option to NO. -# The default value is: system dependent. +# With the correct setting of option CASE_SENSE_NAMES Doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and macOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# Possible values are: SYSTEM, NO and YES. +# The default value is: SYSTEM. CASE_SENSE_NAMES = NO -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# If the HIDE_SCOPE_NAMES tag is set to NO then Doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = YES -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then Doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# If the SHOW_INCLUDE_FILES tag is set to YES then Doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -436,7 +471,7 @@ SHOW_INCLUDE_FILES = YES SHOW_GROUPED_MEMB_INC = NO -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. @@ -448,14 +483,14 @@ FORCE_LOCAL_INCLUDES = NO INLINE_INFO = YES -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# If the SORT_MEMBER_DOCS tag is set to YES then Doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# If the SORT_BRIEF_DOCS tag is set to YES then Doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. @@ -463,7 +498,7 @@ SORT_MEMBER_DOCS = YES SORT_BRIEF_DOCS = NO -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then Doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. @@ -475,7 +510,7 @@ SORT_BRIEF_DOCS = NO SORT_MEMBERS_CTORS_1ST = NO -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# If the SORT_GROUP_NAMES tag is set to YES then Doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. @@ -492,11 +527,11 @@ SORT_GROUP_NAMES = YES SORT_BY_SCOPE_NAME = NO -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# If the STRICT_PROTO_MATCHING option is enabled and Doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# simple string match. By disabling STRICT_PROTO_MATCHING Doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. @@ -566,30 +601,31 @@ SHOW_FILES = YES SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from +# Doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file +# by Doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated +# by Doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can +# that represents Doxygen's defaults, run Doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. # -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# Note that if you run Doxygen from a directory containing a file called +# DoxygenLayout.xml, Doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = @DOXYGEN_LAYOUT_FILE@ # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# generated to standard error (stderr) by Doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. @@ -597,49 +633,79 @@ LAYOUT_FILE = @DOXYGEN_LAYOUT_FILE@ WARNINGS = YES -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# If the WARN_IF_UNDOCUMENTED tag is set to YES then Doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. +# If the WARN_IF_DOC_ERROR tag is set to YES, Doxygen will generate warnings for +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES +# If WARN_IF_INCOMPLETE_DOC is set to YES, Doxygen will warn about incomplete +# function parameter documentation. If set to NO, Doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# value. If set to NO, Doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC # The default value is: NO. WARN_NO_PARAMDOC = NO -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, Doxygen will warn about +# undocumented enumeration values. If set to NO, Doxygen will accept +# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: NO. + +WARN_IF_UNDOC_ENUM_VAL = NO + +# If the WARN_AS_ERROR tag is set to YES then Doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then Doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the Doxygen process Doxygen will return with a non-zero status. +# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then Doxygen behaves +# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined Doxygen will not +# write the warning messages in between other messages but write them at the end +# of a run, in case a WARN_LOGFILE is defined the warning messages will be +# besides being in the defined file also be shown at the end of a run, unless +# the WARN_LOGFILE is defined as - i.e. standard output (stdout) in that case +# the behavior will remain as with the setting FAIL_ON_WARNINGS. +# Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT. # The default value is: NO. WARN_AS_ERROR = @DOXYGEN_WARN_AS_ERROR@ -# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# The WARN_FORMAT tag determines the format of the warning messages that Doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) +# See also: WARN_LINE_FORMAT # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard -# error (stderr). +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). WARN_LOGFILE = @@ -656,10 +722,11 @@ WARN_LOGFILE = INPUT = @DOXYGEN_INPUT_DIRECTORY@ # 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 +# that Doxygen parses. Internally Doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# See also: INPUT_FILE_ENCODING # The default value is: UTF-8. INPUT_ENCODING = UTF-8 @@ -670,15 +737,17 @@ INPUT_ENCODING = UTF-8 # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. +# read by Doxygen. # -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen -# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, -# *.vhdl, *.ucf, *.qsf and *.ice. +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cxxm, +# *.cpp, *.cppm, *.ccm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, +# *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.ixx, *.l, *.cs, *.d, +# *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to +# be provided as Doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = H5*public.h H5*module.h H5*develop.h H5FD*.h \ H5VLconnector.h H5VLconnector_passthru.h H5VLnative.h H5PLextern.h \ @@ -708,7 +777,7 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # -# Note that relative paths are relative to the directory from which doxygen is +# Note that relative paths are relative to the directory from which Doxygen is # run. EXCLUDE = @@ -727,26 +796,23 @@ EXCLUDE_SYMLINKS = NO # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* -EXCLUDE_PATTERNS = */fortran/test/* -EXCLUDE_PATTERNS += */fortran/testpar/* -EXCLUDE_PATTERNS += */fortran/examples/* -EXCLUDE_PATTERNS += */fortran/src/*.c -EXCLUDE_PATTERNS += */fortran/src/*.h -EXCLUDE_PATTERNS += */hl/fortran/examples/* -EXCLUDE_PATTERNS += */hl/fortran/test/* -EXCLUDE_PATTERNS += */hl/fortran/src/*.c -EXCLUDE_PATTERNS += */hl/fortran/src/*.h -EXCLUDE_PATTERNS += */HDF5Examples/FORTRAN/* -EXCLUDE_PATTERNS += */sanitizer/* +EXCLUDE_PATTERNS = */fortran/test/* \ + */fortran/testpar/* \ + */fortran/examples/* \ + */fortran/src/*.c \ + */fortran/src/*.h \ + */hl/fortran/examples/* \ + */hl/fortran/test/* \ + */hl/fortran/src/*.c \ + */hl/fortran/src/*.h \ + */HDF5Examples/FORTRAN/* \ + */sanitizer/* \ # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* +# ANamespace::AClass, ANamespace::*Test EXCLUDE_SYMBOLS = @@ -776,7 +842,7 @@ EXAMPLE_RECURSIVE = NO IMAGE_PATH = @DOXYGEN_DIR@/img -# The INPUT_FILTER tag can be used to specify a program that doxygen should +# The INPUT_FILTER tag can be used to specify a program that Doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # @@ -791,9 +857,14 @@ IMAGE_PATH = @DOXYGEN_DIR@/img # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # +# Note that Doxygen will use the data processed and written to standard output +# for further processing, therefore nothing else, like debug statements or used +# commands (so in case of a Windows batch file always use @echo OFF), should be +# written to standard output. +# # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. INPUT_FILTER = @@ -806,7 +877,7 @@ INPUT_FILTER = # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. FILTER_PATTERNS = @@ -828,7 +899,7 @@ FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. +# and want to reuse the introduction page also for the Doxygen output. USE_MDFILE_AS_MAINPAGE = @@ -846,12 +917,13 @@ USE_MDFILE_AS_MAINPAGE = SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. +# multi-line macros, enums or list initialized variables directly into the +# documentation. # The default value is: NO. INLINE_SOURCES = NO -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct Doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. @@ -889,7 +961,7 @@ REFERENCES_LINK_SOURCE = NO SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# point to the HTML generated by the htags(1) tool instead of Doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. @@ -903,14 +975,14 @@ SOURCE_TOOLTIPS = YES # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # -# The result: instead of the source browser generated by doxygen, the links to +# The result: instead of the source browser generated by Doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# If the VERBATIM_HEADERS tag is set the YES then Doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. @@ -929,10 +1001,11 @@ VERBATIM_HEADERS = NO ALPHABETICAL_INDEX = YES -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. +# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) +# that should be ignored while generating the index headers. The IGNORE_PREFIX +# tag works for classes, function and member names. The entity will be placed in +# the alphabetical list under the first letter of the entity name that remains +# after removing the prefix. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = H5 @@ -941,7 +1014,7 @@ IGNORE_PREFIX = H5 # Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# If the GENERATE_HTML tag is set to YES, Doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES @@ -962,40 +1035,40 @@ HTML_OUTPUT = html HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a +# each generated HTML page. If the tag is left blank Doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. +# that Doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally +# for information on how to generate the default header that Doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description +# default header when upgrading to a newer version of Doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = @DOXYGEN_HTML_HEADER@ # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard +# generated HTML page. If the tag is left blank Doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. +# that Doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = @DOXYGEN_HTML_FOOTER@ # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. +# the HTML output. If left blank Doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. +# sheet that Doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. @@ -1005,13 +1078,18 @@ HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. +# created by Doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. +# list). +# Note: Since the styling of scrollbars can currently not be overruled in +# Webkit/Chromium, the styling will be left out of the default doxygen.css if +# one or more extra stylesheets have been specified. So if scrollbar +# customization is desired it has to be added explicitly. For an example see the +# documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @DOXYGEN_HTML_EXTRA_STYLESHEET@ @@ -1026,9 +1104,22 @@ HTML_EXTRA_STYLESHEET = @DOXYGEN_HTML_EXTRA_STYLESHEET@ HTML_EXTRA_FILES = @DOXYGEN_HTML_EXTRA_FILES@ +# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output +# should be rendered with a dark or light theme. +# Possible values are: LIGHT always generates light mode output, DARK always +# generates dark mode output, AUTO_LIGHT automatically sets the mode according +# to the user preference, uses light mode if no preference is set (the default), +# AUTO_DARK automatically sets the mode according to the user preference, uses +# dark mode if no preference is set and TOGGLE allows a user to switch between +# light and dark mode via a button. +# The default value is: AUTO_LIGHT. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE = LIGHT + # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see +# this color. Hue is specified as an angle on a color-wheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. @@ -1038,7 +1129,7 @@ HTML_EXTRA_FILES = @DOXYGEN_HTML_EXTRA_FILES@ HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A +# in the HTML output. For a value of 0 the output will use gray-scales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1075,6 +1166,17 @@ HTML_DYNAMIC_MENUS = NO HTML_DYNAMIC_SECTIONS = YES +# If the HTML_COPY_CLIPBOARD tag is set to YES then Doxygen will show an icon in +# the top right corner of code and text fragments that allows the user to copy +# its content to the clipboard. Note this only works if supported by the browser +# and the web page is served via a secure context (see: +# https://www.w3.org/TR/secure-contexts/), i.e. using the https: or file: +# protocol. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COPY_CLIPBOARD = YES + # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to @@ -1090,10 +1192,11 @@ HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/xcode/), introduced with OSX -# 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, Doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy # genXcode/_index.html for more information. @@ -1132,14 +1235,18 @@ DOCSET_PUBLISHER_ID = org.doxygen.Publisher DOCSET_PUBLISHER_NAME = Publisher -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# If the GENERATE_HTMLHELP tag is set to YES then Doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). # # The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# generated by Doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for @@ -1159,14 +1266,14 @@ CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. +# Doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). +# (YES) or that it should be included in the main .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1193,6 +1300,16 @@ BINARY_TOC = NO TOC_EXPAND = NO +# The SITEMAP_URL tag is used to specify the full URL of the place where the +# generated documentation will be placed on the server by the user during the +# deployment of the documentation. The generated sitemap is called sitemap.xml +# and placed on the directory specified by HTML_OUTPUT. In case no SITEMAP_URL +# is specified no sitemap is generated. For information about the sitemap +# protocol see https://www.sitemaps.org +# This tag requires that the tag GENERATE_HTML is set to YES. + +SITEMAP_URL = + # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help @@ -1211,7 +1328,8 @@ QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace -# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1219,8 +1337,8 @@ QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- -# folders). +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1228,16 +1346,16 @@ QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = @@ -1249,9 +1367,9 @@ QHP_CUST_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS = -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty Doxygen will try to +# run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = @@ -1294,18 +1412,30 @@ DISABLE_INDEX = NO # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by Doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = YES +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATE_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. +# Doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. @@ -1314,6 +1444,12 @@ GENERATE_TREEVIEW = YES ENUM_VALUES_PER_LINE = 4 +# When the SHOW_ENUM_VALUES tag is set doxygen will show the specified +# enumeration values besides the enumeration mnemonics. +# The default value is: NO. + +SHOW_ENUM_VALUES = NO + # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. @@ -1321,30 +1457,30 @@ ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 250 -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# If the EXT_LINKS_IN_WINDOW option is set to YES, Doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# If the HTML_FORMULA_FORMAT option is set to svg, Doxygen will use the pdf2svg # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for # the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png The default and svg Looks nicer but requires the -# pdf2svg tool. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). # The default value is: png. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FORMULA_FORMAT = png -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and +# When the SEARCHENGINE tag is enabled Doxygen will generate a search box for +# the HTML output. The underlying search engine uses JavaScript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then +# For large projects the JavaScript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically @@ -1363,7 +1499,7 @@ SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using JavaScript. There # are two flavors of web server based searching depending on the EXTERNAL_SEARCH -# setting. When disabled, doxygen will generate a PHP script for searching and +# setting. When disabled, Doxygen will generate a PHP script for searching and # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing # and searching needs to be provided by external tools. See the section # "External Indexing and Searching" for details. @@ -1372,7 +1508,7 @@ SEARCHENGINE = YES SERVER_BASED_SEARCH = @DOXYGEN_SERVER_BASED_SEARCH@ -# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# When EXTERNAL_SEARCH tag is enabled Doxygen will no longer generate the PHP # script for searching. Instead the search results are written to an XML file # which needs to be processed by an external indexer. Doxygen will invoke an # external search engine pointed to by the SEARCHENGINE_URL option to obtain the @@ -1380,7 +1516,8 @@ SERVER_BASED_SEARCH = @DOXYGEN_SERVER_BASED_SEARCH@ # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). +# Xapian (see: +# https://xapian.org/). # # See the section "External Indexing and Searching" for details. # The default value is: NO. @@ -1393,8 +1530,9 @@ EXTERNAL_SEARCH = @DOXYGEN_EXTERNAL_SEARCH@ # # Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: https://xapian.org/). See the section "External Indexing and -# Searching" for details. +# Xapian (see: +# https://xapian.org/). See the section "External Indexing and Searching" for +# details. # This tag requires that the tag SEARCHENGINE is set to YES. SEARCHENGINE_URL = @DOXYGEN_SEARCHENGINE_URL@ @@ -1415,7 +1553,7 @@ SEARCHDATA_FILE = searchdata.xml EXTERNAL_SEARCH_ID = -# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through Doxygen # projects other than the one defined by this configuration file, but that are # all added to the same external search index. Each project needs to have a # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of @@ -1429,7 +1567,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# If the GENERATE_LATEX tag is set to YES, Doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO @@ -1438,7 +1576,7 @@ GENERATE_LATEX = NO # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# If the GENERATE_RTF tag is set to YES, Doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. @@ -1449,7 +1587,7 @@ GENERATE_RTF = NO # Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# If the GENERATE_MAN tag is set to YES, Doxygen will generate man pages for # classes and files. # The default value is: NO. @@ -1459,7 +1597,7 @@ GENERATE_MAN = NO # Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# If the GENERATE_XML tag is set to YES, Doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. @@ -1469,7 +1607,7 @@ GENERATE_XML = NO # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# If the GENERATE_DOCBOOK tag is set to YES, Doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. @@ -1479,8 +1617,8 @@ GENERATE_DOCBOOK = NO # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an -# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# If the GENERATE_AUTOGEN_DEF tag is set to YES, Doxygen will generate an +# AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures # the structure of the code including all documentation. Note that this feature # is still experimental and incomplete at the moment. # The default value is: NO. @@ -1491,7 +1629,7 @@ GENERATE_AUTOGEN_DEF = NO # Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# If the GENERATE_PERLMOD tag is set to YES, Doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. @@ -1503,13 +1641,13 @@ GENERATE_PERLMOD = NO # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# If the ENABLE_PREPROCESSING tag is set to YES, Doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# If the MACRO_EXPANSION tag is set to YES, Doxygen will expand all macro names # in the source code. If set to NO, only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. @@ -1535,7 +1673,8 @@ SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by the -# preprocessor. +# preprocessor. Note that the INCLUDE_PATH is not recursive, so the setting of +# RECURSIVE has no effect here. # This tag requires that the tag SEARCH_INCLUDES is set to YES. INCLUDE_PATH = @@ -1567,7 +1706,7 @@ PREDEFINED = @DOXYGEN_PREDEFINED@ EXPAND_AS_DEFINED = -# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# If the SKIP_FUNCTION_MACROS tag is set to YES then Doxygen's preprocessor will # remove all references to function-like macros that are alone on a line, have # an all uppercase name, and do not end with a semicolon. Such function macros # are typically used for boiler-plate code, and will confuse the parser if not @@ -1591,26 +1730,26 @@ SKIP_FUNCTION_MACROS = YES # section "Linking to external documentation" for more information about the use # of tag files. # Note: Each tag file must have a unique name (where the name does NOT include -# the path). If a tag file is not located in the directory in which doxygen is +# the path). If a tag file is not located in the directory in which Doxygen is # run, you must also specify the path to the tagfile here. TAGFILES = -# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# When a file name is specified after GENERATE_TAGFILE, Doxygen will create a # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. GENERATE_TAGFILE = @DOXYGEN_TAG_FILE@ -# If the ALLEXTERNALS tag is set to YES, all external class will be listed in -# the class index. If set to NO, only the inherited external classes will be -# listed. +# If the ALLEXTERNALS tag is set to YES, all external classes and namespaces +# will be listed in the class and namespace index. If set to NO, only the +# inherited external classes will be listed. # The default value is: NO. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will be +# in the topic index. If set to NO, only the current project's groups will be # listed. # The default value is: YES. diff --git a/doxygen/aliases b/doxygen/aliases index 483357188a6..5137122578f 100644 --- a/doxygen/aliases +++ b/doxygen/aliases @@ -271,10 +271,6 @@ ALIASES += ref_spec_fileformat_btrees_v1="\ref subsubsec_fmt3_infra_btrees_v1" ALIASES += ref_cons_semantics="Enabling a Strict Consistency Semantics Model in Parallel HDF5" ALIASES += ref_filter_pipe="Data Flow Pipeline for H5Dread()" ALIASES += ref_group_impls="Group implementations in HDF5" -ALIASES += ref_mdc_in_hdf5="Metadata Caching in HDF5" -ALIASES += ref_mdc_logging="Metadata Cache Logging" -ALIASES += ref_news_112="New Features in HDF5 Release 1.12" -ALIASES += ref_h5ocopy="Copying Committed Datatypes with H5Ocopy()" ALIASES += ref_sencode_fmt_change="RFC H5Sencode() / H5Sdecode() Format Change" ALIASES += ref_vlen_strings="\Emph{Creating variable-length string datatypes}" ALIASES += ref_vol_doc="VOL documentation" diff --git a/doxygen/dox/About.dox b/doxygen/dox/About.dox index 73010b0c3de..7ae4c71307b 100644 --- a/doxygen/dox/About.dox +++ b/doxygen/dox/About.dox @@ -24,9 +24,6 @@ New documentation should, whenever possible, be created using Doxygen markdown! Use Doxygen's htmlinclude special command to include existing plain HTML pages. -An example from this documentation set can be seen -here. - \subsection new_rm_entry Creating a New Reference Manual Entry Please refer to the \ref RMT for guidance on how to create a new reference manual entry. diff --git a/doxygen/dox/Cookbook.dox b/doxygen/dox/Cookbook.dox index 56523e2f754..f0f72dd5c73 100644 --- a/doxygen/dox/Cookbook.dox +++ b/doxygen/dox/Cookbook.dox @@ -1,6 +1,6 @@ /** \page Cookbook Cookbook - Healthy, everyday recipes for every taste and budget... +Healthy, everyday recipes for every taste and budget... \ref Files \li \ref CB_FreeSpace @@ -16,4 +16,8 @@ \ref Performance \li \ref CB_MDCPerf - */ \ No newline at end of file +\ref cmake-presets +\li \ref sec_cmake_presets_build +\li \ref sec_cmake_presets_files + + */ diff --git a/doxygen/dox/Overview.dox b/doxygen/dox/Overview.dox index a0673ceb2ca..5261590ea8a 100644 --- a/doxygen/dox/Overview.dox +++ b/doxygen/dox/Overview.dox @@ -26,6 +26,6 @@ documents cover a mix of tasks, concepts, and reference, to help a specific You can download it as an archive for offline reading. \par ToDo List - There is plenty of unfinished business. + There is plenty of \ref todo unfinished business. */ diff --git a/doxygen/dox/ReferenceManual.dox b/doxygen/dox/ReferenceManual.dox index d7b5bf6f613..beb8d9d055b 100644 --- a/doxygen/dox/ReferenceManual.dox +++ b/doxygen/dox/ReferenceManual.dox @@ -138,7 +138,7 @@ The functions provided by the HDF5 API are grouped into the following \ref predefined_datatypes_tables
-Deprecated functions
+\ref deprecated
Functions with \ref ASYNC
\ref api-compat-macros diff --git a/doxygen/dox/ViewTools.dox b/doxygen/dox/ViewTools.dox index 2187c326a1c..c428a087c34 100644 --- a/doxygen/dox/ViewTools.dox +++ b/doxygen/dox/ViewTools.dox @@ -987,7 +987,7 @@ In other words, it is an array of four elements, in which each element is a 3 by This dataset is much more complex. Also note that subsetting cannot be done on Array datatypes. -See this section for more information on the Array datatype. +See \ref LBDatatypes section for more information on the Array datatype. \subsubsection subsubsecViewToolsViewDtypes_newref New References References were reworked in HDF5 1.12.0. The new reference datatype is #H5T_STD_REF. The old reference datatypes are deprecated. diff --git a/doxygen/dox/cookbook/Presets.dox b/doxygen/dox/cookbook/Presets.dox new file mode 100644 index 00000000000..af045aadf94 --- /dev/null +++ b/doxygen/dox/cookbook/Presets.dox @@ -0,0 +1,639 @@ +/** \page cmake-presets Building with CMake Presets + +\section sec_cmake_presets_build Building HDF5 with CMake + +\par Problem +You want to build HDF5 with CMake, but there are so many options to consider. + +\par Solution +CMake introduced presets in version 3.19. HDF Group provides a +CMakePresets.json, +requiring CMake 3.24 or higher, +that will build HDF5 with the options for building a typical shared library with +the common languages for a platform. The features include building the tools, examples, +plugins, and the shared and static libraries. + +\par Discussion +The CMakePresets.json file is +located in the root directory of the HDF5 source. It is +from here you will execute the cmake command to build HDF5. The following example shows +how to build HDF5 with the +CMakePresets.json file: +\li change directory to the hdf5 source folder +\li execute cmake --workflow --preset ci-StdShar- --fresh
+ where "" is GNUC or MSVC or Clang + +The above example will create a "build" folder in the source parent directory, which +will contain the results of the build, including installation package files. + +\par See Also +See CMake documentation for details on presets: +\li https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html + +\subsection subsec_cmake_presets_build_static CMake Presets Use Case: Static Library and Tools + +\par Problem +I want to build the HDF5 library statically and include the tools. + +\par Solution +Static libraries can be built with zlib and libaec - but cannot be +built with plugins or Java. + +Create a CMakeUserPresets.json file with the following content: +\code +{ + "version": 6, + "cmakeMinimumRequired": { + "major": 3, + "minor": 24, + "patch": 0 + }, + "configurePresets": [ + { + "name": "my-Static-Tools", + "hidden": true, + "description": "Build HDF5 with static library and tools", + "inherits": ["ci-base", "ci-CompressionVars", "ci-StdExamples"], + "cacheVariables": { + "HDF_PACKAGE_NAMESPACE": {"type": "STRING", "value": "hdf5::"}, + "HDF5_BUILD_SHARED_LIBS": "OFF", + "HDF5_BUILD_TOOLS": "ON", + "HDF5_ENABLE_ZLIB_SUPPORT": "ON", + "HDF5_ENABLE_LIBAEC": "ON", + "HDF5_ENABLE_PLUGIN_SUPPORT": "OFF" + } + }, + { + "name": "my-Static-Tools-MSVC", + "description": "MSVC Standard Config for x64 (Release)", + "inherits": [ + "ci-x64-Release-MSVC", + "ci-CPP", + "my-Static-Tools" + ] + }, + { + "name": "my-Static-Tools-Clang", + "description": "Clang Standard Config for x64 (Release)", + "inherits": [ + "ci-x64-Release-Clang", + "ci-CPP", + "ci-Fortran", + "my-Static-Tools" + ] + }, + { + "name": "my-Static-Tools-GNUC", + "description": "GNUC Standard Config for x64 (Release)", + "inherits": [ + "ci-x64-Release-GNUC", + "ci-CPP", + "ci-Fortran", + "my-Static-Tools" + ] + }, + { + "name": "my-Static-Tools-macos-GNUC", + "description": "GNUC Standard Config for macos (Release)", + "inherits": [ + "ci-macos-Release-GNUC", + "ci-CPP", + "my-Static-Tools" + ] + } + ], + "buildPresets": [ + { + "name": "my-Static-Tools-MSVC", + "description": "MSVC Standard Build for x64 (Release)", + "configurePreset": "my-Static-Tools-MSVC", + "inherits": [ + "ci-x64-Release-MSVC" + ] + }, + { + "name": "my-Static-Tools-Clang", + "description": "Clang Standard Build for x64 (Release)", + "configurePreset": "my-Static-Tools-Clang", + "inherits": [ + "ci-x64-Release-Clang" + ] + }, + { + "name": "my-Static-Tools-GNUC", + "description": "GNUC Standard Build for x64 (Release)", + "configurePreset": "my-Static-Tools-GNUC", + "inherits": [ + "ci-x64-Release-GNUC" + ] + }, + { + "name": "my-Static-Tools-macos-GNUC", + "description": "GNUC Standard Build for macos (Release)", + "configurePreset": "my-Static-Tools-macos-GNUC", + "verbose": true, + "inherits": [ + "ci-macos-Release-GNUC" + ] + } + ], + "testPresets": [ + { + "name": "my-Static-Tools-MSVC", + "configurePreset": "my-Static-Tools-MSVC", + "inherits": [ + "ci-x64-Release-MSVC" + ] + }, + { + "name": "my-Static-Tools-Clang", + "configurePreset": "my-Static-Tools-Clang", + "inherits": [ + "ci-x64-Release-Clang" + ] + }, + { + "name": "my-Static-Tools-GNUC", + "configurePreset": "my-Static-Tools-GNUC", + "inherits": [ + "ci-x64-Release-GNUC" + ] + }, + { + "name": "my-Static-Tools-macos-GNUC", + "configurePreset": "my-Static-Tools-macos-GNUC", + "inherits": [ + "ci-macos-Release-GNUC" + ] + } + ], + "packagePresets": [ + { + "name": "my-Static-Tools-MSVC", + "configurePreset": "my-Static-Tools-MSVC", + "inherits": "ci-x64-Release-MSVC" + }, + { + "name": "my-Static-Tools-Clang", + "configurePreset": "my-Static-Tools-Clang", + "inherits": "ci-x64-Release-Clang" + }, + { + "name": "my-Static-Tools-GNUC", + "configurePreset": "my-Static-Tools-GNUC", + "inherits": "ci-x64-Release-GNUC" + }, + { + "name": "my-Static-Tools-macos-GNUC", + "configurePreset": "my-Static-Tools-macos-GNUC", + "inherits": "ci-macos-Release-GNUC" + } + ], + "workflowPresets": [ + { + "name": "my-Static-Tools-MSVC", + "steps": [ + {"type": "configure", "name": "my-Static-Tools-MSVC"}, + {"type": "build", "name": "my-Static-Tools-MSVC"}, + {"type": "test", "name": "my-Static-Tools-MSVC"}, + {"type": "package", "name": "my-Static-Tools-MSVC"} + ] + }, + { + "name": "my-StdShar-Clang", + "steps": [ + {"type": "configure", "name": "my-Static-Tools-Clang"}, + {"type": "build", "name": "my-Static-Tools-Clang"}, + {"type": "test", "name": "my-Static-Tools-Clang"}, + {"type": "package", "name": "my-Static-Tools-Clang"} + ] + }, + { + "name": "my-StdShar-GNUC", + "steps": [ + {"type": "configure", "name": "my-Static-Tools-GNUC"}, + {"type": "build", "name": "my-Static-Tools-GNUC"}, + {"type": "test", "name": "my-Static-Tools-GNUC"}, + {"type": "package", "name": "my-Static-Tools-GNUC"} + ] + }, + { + "name": "my-Static-Tools-macos-GNUC", + "steps": [ + {"type": "configure", "name": "my-Static-Tools-macos-GNUC"}, + {"type": "build", "name": "my-Static-Tools-macos-GNUC"}, + {"type": "test", "name": "my-Static-Tools-macos-GNUC"}, + {"type": "package", "name": "my-Static-Tools-macos-GNUC"} + ] + } + ] +} +\endcode + +\par Discussion +The above example shows how to build HDF5 with a static library and tools. The +CMakeUserPresets.json file is located in the root directory of the HDF5 source. It is +from here you execute: +\li cmake --workflow --preset my-Static-Tools- --fresh
+ where "" is GNUC or MSVC or Clang or macos-GNUC + +If you don't need cross-compiler or cross-platform support, you can remove the +compiler-specific presets and use the "my-Static-Tools" preset directly. + +\par See Also +\ref subsec_cmake_presets_files_json_details for details on the default settings for the +StdShar presets. + +\subsection subsec_cmake_presets_build_s3 CMake Presets Use Case: S3 on linux + +\par Problem +I want to build the HDF5 library with the ros3 vfd. + +\par Solution +Create a CMakeUserPresets.json file with the following content: +\code +{ + "version": 6, + "cmakeMinimumRequired": { + "major": 3, + "minor": 24, + "patch": 0 + }, + "configurePresets": [ + { + "name": "my-linux-S3", + "hidden": true, + "description": "Build HDF5 with library and tools for S3", + "inherits": ["ci-base", "ci-S3", "ci-CompressionVars", "ci-StdExamples", "ci-StdPlugins"], + "cacheVariables": { + "HDF_PACKAGE_NAMESPACE": {"type": "STRING", "value": "hdf5::"}, + "HDF5_BUILD_SHARED_LIBS": "ON", + "HDF5_BUILD_TOOLS": "ON", + "HDF5_ENABLE_ZLIB_SUPPORT": "ON", + "HDF5_ENABLE_LIBAEC": "ON", + "HDF5_ENABLE_PLUGIN_SUPPORT": "ON" + } + }, + { + "name": "my-linux-S3-Clang", + "description": "Clang Standard Config for x64 (Release)", + "inherits": [ + "ci-x64-Release-Clang", + "ci-CPP", + "ci-Fortran", + "my-linux-S3" + ] + }, + { + "name": "my-linux-S3-GNUC", + "description": "GNUC Standard Config for x64 (Release)", + "inherits": [ + "ci-x64-Release-GNUC", + "ci-CPP", + "ci-Fortran", + "my-linux-S3" + ] + } + ], + "buildPresets": [ + { + "name": "my-linux-S3-Clang", + "description": "Clang Standard Build for x64 (Release)", + "configurePreset": "my-linux-S3-Clang", + "inherits": [ + "ci-x64-Release-Clang" + ] + }, + { + "name": "my-linux-S3-GNUC", + "description": "GNUC Standard Build for x64 (Release)", + "configurePreset": "my-linux-S3-GNUC", + "inherits": [ + "ci-x64-Release-GNUC" + ] + } + ], + "testPresets": [ + { + "name": "my-linux-S3-Clang", + "configurePreset": "my-linux-S3-Clang", + "inherits": [ + "ci-x64-Release-Clang" + ] + }, + { + "name": "my-linux-S3-GNUC", + "configurePreset": "my-linux-S3-GNUC", + "inherits": [ + "ci-x64-Release-GNUC" + ] + } + ], + "packagePresets": [ + { + "name": "my-linux-S3-Clang", + "configurePreset": "my-linux-S3-Clang", + "inherits": "ci-x64-Release-Clang" + }, + { + "name": "my-linux-S3-GNUC", + "configurePreset": "my-linux-S3-GNUC", + "inherits": "ci-x64-Release-GNUC" + } + ], + "workflowPresets": [ + { + "name": "my-linux-S3-Clang", + "steps": [ + {"type": "configure", "name": "my-linux-S3-Clang"}, + {"type": "build", "name": "my-linux-S3-Clang"}, + {"type": "test", "name": "my-linux-S3-Clang"}, + {"type": "package", "name": "my-linux-S3-Clang"} + ] + }, + { + "name": "my-linux-S3-GNUC", + "steps": [ + {"type": "configure", "name": "my-linux-S3-GNUC"}, + {"type": "build", "name": "my-linux-S3-GNUC"}, + {"type": "test", "name": "my-linux-S3-GNUC"}, + {"type": "package", "name": "my-linux-S3-GNUC"} + ] + } + ] +} +\endcode + +\par Discussion +The above example shows how to build HDF5 with a static library and tools. The +CMakeUserPresets.json file is located in the root directory of the HDF5 source. It is +from here you execute: +\li cmake --workflow --preset my-S3- --fresh
+ where "" is GNUC or Clang or macos-GNUC + +If you don't need cross-compiler support, you can remove the +compiler-specific presets and use the "my-linux-S3" preset directly. + +\par See Also +\ref subsec_cmake_presets_files_json_details for details on the default settings for the +StdShar presets. + +\subsection subsec_cmake_presets_build_par CMake Presets Use Case: Parallel Library + +\par Problem +I want to build the HDF5 library with a parallel compiler. + +\par Solution +Create a CMakeUserPresets.json file with the following content: +\code +{ + "version": 6, + "cmakeMinimumRequired": { + "major": 3, + "minor": 24, + "patch": 0 + }, + "configurePresets": [ + { + "name": "my-linux-par", + "hidden": true, + "description": "Build HDF5 with library and tools using parallel compiler", + "inherits": ["ci-base", "ci-CompressionVars", "ci-StdExamples"], + "environment": { + "CC": "mpicc" + }, + "cacheVariables": { + "HDF_PACKAGE_NAMESPACE": {"type": "STRING", "value": "hdf5::"}, + "HDF5_BUILD_SHARED_LIBS": "ON", + "HDF5_BUILD_TOOLS": "ON", + "MPIEXEC_NUMPROC_FLAG": "-n", + "MPIEXEC_MAX_NUMPROCS": "2", + "HDF5_ENABLE_PARALLEL": "ON", + "HDF5_ENABLE_SUBFILING_VFD": "OFF", + "HDF5_ENABLE_ZLIB_SUPPORT": "ON", + "HDF5_ENABLE_LIBAEC": "ON", + "HDF5_ENABLE_PLUGIN_SUPPORT": "OFF" + } + }, + { + "name": "my-linux-par-mpich", + "description": "mpich Standard Config for x64 (Release)", + "inherits": [ + "ci-x64-Release-GNUC", + "my-linux-par" + ] + } + ], + "buildPresets": [ + { + "name": "my-linux-par-mpich", + "description": "mpich Standard Build for x64 (Release)", + "configurePreset": "my-linux-par-mpich", + "inherits": [ + "ci-x64-Release-GNUC" + ] + } + ], + "testPresets": [ + { + "name": "my-linux-serial-mpich", + "configurePreset": "my-linux-par-mpich", + "inherits": [ + "ci-x64-Release-GNUC" + ], + "filter": { + "exclude": { + "name": "MPI_TEST" + } + } + }, + { + "name": "my-linux-par-mpich", + "configurePreset": "my-linux-par-mpich", + "inherits": [ + "ci-x64-Release-GNUC" + ], + "filter": { + "include": { + "name": "MPI_TEST" + } + } + } + ], + "packagePresets": [ + { + "name": "my-linux-par-mpich", + "configurePreset": "my-linux-par-mpich", + "inherits": "ci-x64-Release-GNUC" + } + ], + "workflowPresets": [ + { + "name": "my-linux-par-mpich", + "steps": [ + {"type": "configure", "name": "my-linux-par-mpich"}, + {"type": "build", "name": "my-linux-par-mpich"}, + {"type": "test", "name": "my-linux-serial-mpich"}, + {"type": "test", "name": "my-linux-par-mpich"}, + {"type": "package", "name": "my-linux-par-mpich"} + ] + } + ] +} +\endcode + +\par Discussion +The above example shows how to build HDF5 with a parallel compiler. The +CMakeUserPresets.json file is located in the root directory of the HDF5 source. It is +from here you execute: +\li cmake --workflow --preset my-linux-par-GNUC --fresh + +\par See Also +\ref subsec_cmake_presets_files_json_details for details on the default settings for the +StdShar presets. + +\section sec_cmake_presets_files CMake Presets +Presets are a way to store a set of +CMake cache variables in a file. This allows you to save and load a set of +variables that you use frequently. Presets can be used to save the configuration +of a project for different build configurations, such as Debug and Release. + +CMake supports two main files, CMakePresets.json and CMakeUserPresets.json, that +allow users to specify common configure options and share them with others. CMake +also supports files included with the include field. + +\subsection subsec_cmake_presets_files_json CMakePresets.json +HDF Group provides a CMakePresets.json +file, used by the github workflows, that +includes the following StdShar presets: +\li ci-StdShar-MSVC - use MSVC compiler +\li ci-StdShar-Clang - use Clang compiler +\li ci-StdShar-macos-Clang -Apple Clang compiler +\li ci-StdShar-GNUC - use GNU compiler +\li ci-StdShar-macos-GNUC - use Apple GNU compiler +\li ci-StdShar-GNUC-S3 - use GNU compiler with S3 support +\li ci-StdShar-Intel - use Intel OneAPI compiler +\li ci-StdShar-win-Intel - use Intel OneAPI compiler on Windows + +The StdShar presets are used by the GitHub workflows to build and test the HDF5 +library on different platforms and compilers. The +CMakePresets.json file is +located in the root directory of the HDF5 repository. The StdShar presets inherit +the following settings: +\li ci-CPP - enables C++ support +\li ci-Fortran - enables Fortran support, except on macOS +\li ci-Java - enables Java support +\li ci-StdShar - described below + +The ci-StdShar preset inherits the following settings: +\li ci-StdCompression +\li ci-StdExamples +\li ci-StdPlugins + +See the CMakePresets.json +file for the complete list of presets and settings. The +\ref subsec_cmake_presets_files_json_details section provides an overview of the default +settings for the StdShar presets. + + + +\subsection subsec_cmake_presets_files_json_details Default CMakePresets.json Settings +The ci-StdShar preset sets the following cache variables: +\li "HDF_PACKAGE_NAMESPACE": {"type": "STRING", "value": "hdf5::"} +\li "HDF5_INSTALL_MOD_FORTRAN": "NO" +\li "HDF5_BUILD_GENERATORS": "ON" +\li "HDF5_ENABLE_ALL_WARNINGS": "ON" +\li "HDF5_MINGW_STATIC_GCC_LIBS": "ON" +\li "HDF_TEST_EXPRESS": "2" + +The ci-StdExamples preset inherits the following settings: +\li ci-base +\li ci-base-tgz + +The ci-StdExamples preset sets the following cache variables: +\li "HDF5_PACK_EXAMPLES": "ON" +\li "EXAMPLES_DOWNLOAD": "ON" + +The ci-StdPlugins preset inherits the following settings: +\li ci-base-plugins +\li ci-PluginsVars +\li ci-base-tgz + +The ci-StdPlugins preset sets the following cache variables: +\li "PLUGIN_USE_LOCALCONTENT": "OFF" + +The ci-PluginsVars preset sets the following cache variables: +\li "HDF5_ENABLE_PLUGIN_SUPPORT": "ON" +\li "H5PL_ALLOW_EXTERNAL_SUPPORT": {"type": "STRING", "value": "TGZ"} +\li "PLUGIN_PACKAGE_NAME": {"type": "STRING", "value": "pl"} +\li "PLUGIN_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/HDFGroup/hdf5_plugins/releases/download/snapshot"} +\li "PLUGIN_TGZ_NAME": {"type": "STRING", "value": "hdf5_plugins-master.tar.gz"} + +The ci-base-plugins preset sets the following cache variables: +\li "BSHUF_TGZ_NAME": {"type": "STRING", "value": "bitshuffle-0.5.2.tar.gz"} +\li "BSHUF_PACKAGE_NAME": {"type": "STRING", "value": "bshuf"} +\li "BLOSC_TGZ_NAME": {"type": "STRING", "value": "c-blosc-1.21.6.tar.gz"} +\li "BLOSC_PACKAGE_NAME": {"type": "STRING", "value": "blosc"} +\li "BLOSC_ZLIB_TGZ_NAME": {"type": "STRING", "value": "zlib-1.3.1.tar.gz"} +\li "BLOSC_ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"} +\li "BLOSC2_TGZ_NAME": {"type": "STRING", "value": "c-blosc2-2.15.2.tar.gz"} +\li "BLOSC2_PACKAGE_NAME": {"type": "STRING", "value": "blosc2"} +\li "BLOSC2_ZLIB_TGZ_NAME": {"type": "STRING", "value": "zlib-1.3.1.tar.gz"} +\li "BLOSC2_ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"} +\li "BZ2_TGZ_NAME": {"type": "STRING", "value": "bzip2-bzip2-1.0.8.tar.gz"} +\li "BZ2_PACKAGE_NAME": {"type": "STRING", "value": "bz2"} +\li "FPZIP_TGZ_NAME": {"type": "STRING", "value": "fpzip-1.3.0.tar.gz"} +\li "FPZIP_PACKAGE_NAME": {"type": "STRING", "value": "fpzip"} +\li "JPEG_TGZ_NAME": {"type": "STRING", "value": "jpegsrc.v9e.tar.gz"} +\li "JPEG_PACKAGE_NAME": {"type": "STRING", "value": "jpeg"} +\li "BUILD_LZ4_LIBRARY_SOURCE": "ON" +\li "LZ4_TGZ_NAME": {"type": "STRING", "value": "lz4-1.10.0.tar.gz"} +\li "LZ4_PACKAGE_NAME": {"type": "STRING", "value": "lz4"} +\li "LZF_TGZ_NAME": {"type": "STRING", "value": "liblzf-3.6.tar.gz"} +\li "LZF_PACKAGE_NAME": {"type": "STRING", "value": "lzf"} +\li "SZ_TGZ_NAME": {"type": "STRING", "value": "SZ-2.1.12.5.tar.gz"} +\li "SZ_PACKAGE_NAME": {"type": "STRING", "value": "SZ"} +\li "ZFP_TGZ_NAME": {"type": "STRING", "value": "zfp-1.0.1.tar.gz"} +\li "ZFP_PACKAGE_NAME": {"type": "STRING", "value": "zfp"} +\li "ZSTD_TGZ_NAME": {"type": "STRING", "value": "zstd-1.5.6.tar.gz"} +\li "ZSTD_PACKAGE_NAME": {"type": "STRING", "value": "zstd"} + +The ci-StdCompression preset inherits the following settings: +\li ci-base-tgz +\li ci-CompressionVars + +The ci-StdCompression preset sets the following cache variables: +\li "HDF5_PACKAGE_EXTLIBS": "ON" +\li "HDF5_USE_ZLIB_NG": "OFF" +\li "ZLIB_USE_LOCALCONTENT": "OFF" +\li "LIBAEC_USE_LOCALCONTENT": "OFF" +\li "HDF5_USE_ZLIB_STATIC": "ON" +\li "HDF5_USE_LIBAEC_STATIC": "ON" + +The ci-CompressionVars preset sets the following cache variables: +\li "ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"} +\li "ZLIB_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/madler/zlib/releases/download/v1.3.1"} +\li "ZLIB_TGZ_NAME": {"type": "STRING", "value": "zlib-1.3.1.tar.gz"} +\li "ZLIBNG_PACKAGE_NAME": {"type": "STRING", "value": "zlib-ng"} +\li "ZLIBNG_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/zlib-ng/zlib-ng/archive/refs/tags"} +\li "ZLIBNG_TGZ_NAME": {"type": "STRING", "value": "2.2.2.tar.gz"} +\li "LIBAEC_PACKAGE_NAME": {"type": "STRING", "value": "libaec"} +\li "LIBAEC_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/MathisRosenhauer/libaec/releases/download/v1.1.3"} +\li "LIBAEC_TGZ_NAME": {"type": "STRING", "value": "libaec-1.1.3.tar.gz"} + +The ci-base-tgz preset inherits the following settings: +\li ci-base + +The ci-base-tgz preset sets the following cache variables: +\li "HDF5_ALLOW_EXTERNAL_SUPPORT": {"type": "STRING", "value": "TGZ"} +\li "TGZPATH": {"type": "PATH", "value": "${sourceParentDir}/temp"} + +The ci-base preset sets the following CMake variables: +\li "name": "ci-base" +\li "displayName": "Basic Config" +\li "description": "Basic build using Ninja generator" +\li "generator": "Ninja" +\li "binaryDir": "${sourceParentDir}/build/${presetName}" +\li "installDir": "${sourceParentDir}/install/${presetName}" + +*/ diff --git a/doxygen/dox/hdf5_1_10.dox b/doxygen/dox/hdf5_1_10.dox index 5bb4a340a5f..f156f3f8855 100644 --- a/doxygen/dox/hdf5_1_10.dox +++ b/doxygen/dox/hdf5_1_10.dox @@ -174,7 +174,7 @@ The following APIs were introduced to support this feature: DCPL does or does not create minimized dataset object headers \li #H5Pset_dset_no_attrs_hint - Sets the flag to create minimized dataset object headers -\subsubsection subsubsec_rel_spec_110_feat_new_5_parchg Parallel Library Change (RFC) +\subsubsection subsubsec_rel_spec_110_feat_new_5_parchg Parallel Library Change A change was added to the default behavior in parallel when reading the same dataset in its entirety (i.e. H5S_ALL dataset selection) which is being read by all the processes collectively. @@ -376,7 +376,7 @@ otherwise described. The page includes the following sections: RFCs for the new features in HDF5-1.10: \li \ref_rfc20180620 \li \ref_rfc20181231 -\li Parallel Library Change (RFC)(https://docs.hdfgroup.org/hdf5/develop/_r_f_c.html) +\li \ref subsubsec_rel_spec_110_feat_new_5_parchg \li \ref_rfc20181220 \li \ref_rfc20160105 diff --git a/doxygen/dox/hdf5_1_8.dox b/doxygen/dox/hdf5_1_8.dox index e9bf3ed9797..523177c8856 100644 --- a/doxygen/dox/hdf5_1_8.dox +++ b/doxygen/dox/hdf5_1_8.dox @@ -2078,7 +2078,7 @@ SRB functionality is now supported through the mechanism described in SRB - The \li H5Pget_fapl_srb The stream virtual file driver (H5FD_STREAM) has been removed from the HDF5 distribution. The -functionality was last available from http://hdf5-addons.origo.ethz.ch/. +functionality was last available from hdf5-addons.origo.ethz.ch/. \li H5Pset_fapl_stream \li H5Pget_fapl_stream @@ -2102,7 +2102,7 @@ Virtual File Driver Removed The stream virtual file driver (H5FD_STREAM) have been removed in this release. This affects the functions H5Pset_fapl_stream and H5Pget_fapl_stream and the constant H5FD_STREAM. -This virtual file driver will remain available at http://hdf5-addons.origo.ethz.ch/. Note that +This virtual file driver will remain available at hdf5-addons.origo.ethz.ch/. Note that as of this writing, this transition is still in progress; the necessary integration tools may not be available when HDF5 Release 1.8.0 first comes out. diff --git a/doxygen/dox/sw_changes_1.12.dox b/doxygen/dox/sw_changes_1.12.dox index 6d6bc9ea7c1..6a59c0d8dff 100644 --- a/doxygen/dox/sw_changes_1.12.dox +++ b/doxygen/dox/sw_changes_1.12.dox @@ -208,7 +208,7 @@ list the specific new feature that they were added for. \subsubsection subsubsec_rel_spec_112_change_0versus10_6_compat API Compatibility See API Compatibility Macros in HDF5 for details on using HDF5 version 1.12 with previous releases. -[Compatibility report for Release 1.12.0 versus Release 1.10.6](Compatibility report for Release 1.12.0 versus Release 1.10.6) +[Compatibility report for Release 1.12.0 versus Release 1.10.6]() */ diff --git a/doxygen/doxygen-awesome.css b/doxygen/doxygen-awesome.css index a2715e268c5..c2f41142f99 100644 --- a/doxygen/doxygen-awesome.css +++ b/doxygen/doxygen-awesome.css @@ -805,6 +805,8 @@ html.dark-mode iframe#MSearchResults { #nav-tree .item { height: var(--tree-item-height); line-height: var(--tree-item-height); + overflow: hidden; + text-overflow: ellipsis; } #nav-tree .item > a:focus { @@ -823,6 +825,8 @@ html.dark-mode iframe#MSearchResults { background-image: none; background-color: transparent; position: relative; + color: var(--primary-color) !important; + font-weight: 500; } #nav-tree .selected::after { @@ -1749,7 +1753,7 @@ table.fieldtable th { color: var(--tablehead-foreground); } -table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th { +table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit, .fieldtable td.fielddoc, .fieldtable th { border-bottom: 1px solid var(--separator-color); border-right: 1px solid var(--separator-color); } diff --git a/doxygen/img/FortBuildFlow.svg b/doxygen/img/FortBuildFlow.svg new file mode 100644 index 00000000000..b7ebc47ff1e --- /dev/null +++ b/doxygen/img/FortBuildFlow.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +H5fort_type_defines.h.in + + + + + + + + + + + + + + + + + + + +H5config_f.inc.in + +H5config_f.inc + + + + + + + + + +BUILD + +CONFIGURE + +H5_buildiface.F90 + +H5match_types.c + +H5fortran_types.F90 + +H5f90i_gen.h + +H5_gen.F90 + +H5[A,D,S,T,E,ES,F,Z,G,I,L,O,P,R,VL]ff.F90 + +H5[A,D,S,T,E,ES,F,Z,G,I,L,O,P,R,VL]f.c + + + +H5fort_type_defines.h + + diff --git a/hl/src/H5LTpublic.h b/hl/src/H5LTpublic.h index 11ace0be32a..ac2e2b50861 100644 --- a/hl/src/H5LTpublic.h +++ b/hl/src/H5LTpublic.h @@ -1386,8 +1386,7 @@ H5_HLDLL herr_t H5LTget_attribute_info(hid_t loc_id, const char *obj_name, const * \p lang_type definition of HDF5 datatypes. * Currently, only the DDL(#H5LT_DDL) is supported. * The complete DDL definition of HDF5 datatypes can be found in - * the specifications chapter of the - * + * the \ref SPEC chapter of the * HDF5 User's Guide. * * \par Example @@ -1424,8 +1423,7 @@ H5_HLDLL hid_t H5LTtext_to_dtype(const char *text, H5LT_lang_t lang_type); * * Currently only DDL (#H5LT_DDL) is supported for \p lang_type. * The complete DDL definition of HDF5 data types can be found in - * the specifications chapter of the - * + * the \ref SPEC chapter of the * HDF5 User's Guide. * * \par Example diff --git a/src/H5ACpublic.h b/src/H5ACpublic.h index eb0f3da7490..e41931c8025 100644 --- a/src/H5ACpublic.h +++ b/src/H5ACpublic.h @@ -559,7 +559,7 @@ typedef struct H5AC_cache_config_t { * The value must lie in the interval [0.0, 1.0]. 0.01 is a good place to * start in the serial case. In the parallel case, a larger value is needed * -- see the overview of the metadata cache in the - * “Metadata Caching in HDF5” section of the -- \ref UG + * \ref TNMDC section of the -- \ref UG * for details. */ size_t max_size; diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h index 557982669dd..67bb8d312d6 100644 --- a/src/H5Fpublic.h +++ b/src/H5Fpublic.h @@ -1170,7 +1170,7 @@ H5_DLL herr_t H5Fget_mdc_size(hid_t file_id, size_t *max_size_ptr, size_t *min_c * is enabled. However, the call should be useful if you choose to control metadata cache size from your * program. * - * See \ref_mdc_in_hdf5 for details about the metadata cache and the adaptive cache resizing + * See \ref TNMDC for details about the metadata cache and the adaptive cache resizing * algorithms. If you have not read, understood, and thought about the material covered in that * documentation, * you should not be using this API call. @@ -1506,7 +1506,7 @@ H5_DLL herr_t H5Fset_libver_bounds(hid_t file_id, H5F_libver_t low, H5F_libver_t * list, and H5Fget_mdc_logging_status() will return the current state of * the logging flags. * - * The log format is described in the \ref_mdc_logging document. + * The log format is described in the \ref_rfc20140224 document. * * \note Logging can only be started or stopped if metadata cache logging was enabled * via H5Pset_mdc_log_options().\n @@ -1556,7 +1556,7 @@ H5_DLL herr_t H5Fstart_mdc_logging(hid_t file_id); * list, and H5Fget_mdc_logging_status() will return the current state of * the logging flags. * - * The log format is described in the \ref_mdc_logging document. + * The log format is described in the \ref_rfc20140224 document. * * \note Logging can only be started or stopped if metadata cache logging was enabled * via H5Pset_mdc_log_options().\n @@ -1602,7 +1602,7 @@ H5_DLL herr_t H5Fstop_mdc_logging(hid_t file_id); * list, and H5Fget_mdc_logging_status() will return the current state of * the logging flags. * - * The log format is described in the \ref_mdc_logging document. + * The log format is described in the \ref_rfc20140224 document. * * \note Unlike H5Fstart_mdc_logging() and H5Fstop_mdc_logging(), this function can * be called on any open file identifier. diff --git a/src/H5Opublic.h b/src/H5Opublic.h index 6ffe96acf05..aaef0ddfc8a 100644 --- a/src/H5Opublic.h +++ b/src/H5Opublic.h @@ -923,7 +923,7 @@ H5_DLL herr_t H5Odecr_refcount(hid_t object_id); * - H5Pset_copy_object() * - H5Pset_create_intermediate_group() * - H5Pset_mcdt_search_cb() - * - Copying Committed Datatypes with #H5Ocopy - A comprehensive + * - \ref copying_committed - A comprehensive * discussion of copying committed datatypes (PDF) in * Advanced Topics in HDF5 * diff --git a/src/H5PLmodule.h b/src/H5PLmodule.h index a76f8e199b4..2d9564a0478 100644 --- a/src/H5PLmodule.h +++ b/src/H5PLmodule.h @@ -43,8 +43,8 @@ * available on the system in a default location. The HDF5 filter plugin is discussed in detail in the * \ref subsec_filter_plugins_prog section. * - * \subsubsection subsubsec_filter_plugins_model_apply Applying a Third-party Filter When Creating and Writing - * a Dataset A third-party filter can be added to the HDF5 filter pipeline by using the H5Pset_filter + * \subsubsection sssec_filt_pl_model_apply Applying a Third-party Filter When Creating and Writing a Dataset + * A third-party filter can be added to the HDF5 filter pipeline by using the H5Pset_filter * function, as a user would do in the past. The identification number and the filter parameters should be * available to the application. For example, if the application intends to apply the HDF5 bzip2 compression * filter that was registered with The HDF Group and has an identification number 307 diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h index 1ac5279403d..bd991e04465 100644 --- a/src/H5Ppublic.h +++ b/src/H5Ppublic.h @@ -3913,7 +3913,7 @@ H5_DLL herr_t H5Pget_mdc_image_config(hid_t plist_id, H5AC_cache_image_config_t * access property list, and H5Fget_mdc_logging_status() will return * the current state of the logging flags. * - * The log format is described in the \ref_mdc_logging document. + * The log format is described in the \ref_rfc20140224 document. * * \since 1.10.0 */ @@ -9644,7 +9644,7 @@ H5_DLL herr_t H5Pset_nlinks(hid_t plist_id, size_t nlinks); * \li H5Pget_mcdt_search_cb() * \li H5Pset_copy_object() * \li H5Pset_mcdt_search_cb() - * \li \ref_h5ocopy + * \li \ref copying_committed * * \since 1.8.9 * @@ -9758,7 +9758,7 @@ H5_DLL herr_t H5Pget_copy_object(hid_t plist_id, unsigned *copy_options /*out*/) * \li H5Pget_mcdt_search_cb() * \li H5Pset_copy_object() * \li H5Pset_mcdt_search_cb() - * \li \ref_h5ocopy + * \li \ref copying_committed * * \since 1.8.9 * @@ -9849,7 +9849,7 @@ H5_DLL herr_t H5Pget_mcdt_search_cb(hid_t plist_id, H5O_mcdt_search_cb_t *func, * \li H5Pget_mcdt_search_cb() * \li H5Pset_copy_object() * \li H5Pset_mcdt_search_cb() - * \li \ref_h5ocopy + * \li \ref copying_committed * * \version 1.8.9 #H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG added in this release. * @@ -9936,7 +9936,7 @@ H5_DLL herr_t H5Pset_copy_object(hid_t plist_id, unsigned copy_options); * \li H5Pget_mcdt_search_cb() * \li H5Pset_copy_object() * \li H5Pset_mcdt_search_cb() - * \li \ref_h5ocopy + * \li \ref copying_committed * * \since 1.8.9 * diff --git a/src/H5Spublic.h b/src/H5Spublic.h index 9c50d1f43a4..b827ceead34 100644 --- a/src/H5Spublic.h +++ b/src/H5Spublic.h @@ -410,7 +410,7 @@ H5_DLL hid_t H5Sdecode(const void *buf); * * \note Motivation: This function was introduced in HDF5-1.12 as part of the * H5Sencode() format change to enable 64-bit selection encodings and - * a dataspace selection that is tied to a file. See the \ref_news_112 + * a dataspace selection that is tied to a file. See the \ref sec_rel_spec_112_feat * as well as the \ref_sencode_fmt_change. * * \since 1.12.0 diff --git a/src/H5Tmodule.h b/src/H5Tmodule.h index 9fa19a05c79..480d33b3649 100644 --- a/src/H5Tmodule.h +++ b/src/H5Tmodule.h @@ -3679,7 +3679,7 @@ filled according to the value of this property. The padding can be: * datatype object. This saves space and makes clear that the datatype is shared. Note that a * committed datatype can be shared by objects within the same HDF5 file, but not by objects in * other files. For more information on copying committed datatypes to other HDF5 files, see the - * “Copying Committed Datatypes with H5Ocopy” topic in the “Additional Resources” chapter. + * \ref copying_committed topic in the “Additional Resources” chapter. * * A committed datatype can be deleted from the file by calling #H5Ldelete which replaces * #H5Gunlink. See item i in the figure below. If one or more objects are still using the datatype, the diff --git a/src/H5VLconnector.h b/src/H5VLconnector.h index e9093fb2a09..ebaab04d11c 100644 --- a/src/H5VLconnector.h +++ b/src/H5VLconnector.h @@ -39,7 +39,7 @@ /* The maximum size allowed for blobs */ #define H5VL_MAX_BLOB_ID_SIZE (16) /* Allow for 128-bits blob IDs */ -/** # of optional operations reserved for the native VOL connector \since 1.14.0 */ +/** The number of optional operations reserved for the native VOL connector \since 1.14.0 */ #define H5VL_RESERVED_NATIVE_OPTIONAL 1024 /*******************/