diff --git a/CMakeBuildOptions.cmake b/CMakeBuildOptions.cmake new file mode 100644 index 00000000000..38390310824 --- /dev/null +++ b/CMakeBuildOptions.cmake @@ -0,0 +1,86 @@ +# Put all top-level options build options into one place +# This file will be included at the beginning of the root CMakeLists.txt +option (HDF5_USE_FOLDERS "Enable folder grouping of projects in IDEs." ON) +mark_as_advanced (HDF5_USE_FOLDERS) + +option (HDF5_NO_PACKAGES "CPACK - Disable packaging" OFF) +mark_as_advanced (HDF5_NO_PACKAGES) +option (HDF5_ALLOW_UNSUPPORTED "Allow unsupported combinations of configure options" OFF) +mark_as_advanced (HDF5_ALLOW_UNSUPPORTED) + +option (HDF5_ONLY_SHARED_LIBS "Only Build Shared Libraries" OFF) +mark_as_advanced (HDF5_ONLY_SHARED_LIBS) +option (BUILD_STATIC_LIBS "Build Static Libraries" ON) +option (BUILD_SHARED_LIBS "Build Shared Libraries" ON) + +option (HDF5_BUILD_STATIC_TOOLS "Build Static Tools NOT Shared Tools" OFF) +mark_as_advanced (HDF5_BUILD_STATIC_TOOLS) + +option (BUILD_STATIC_EXECS "Build Static Executables" OFF) +mark_as_advanced (BUILD_STATIC_EXECS) + +option (HDF5_ENABLE_ANALYZER_TOOLS "enable the use of Clang tools" OFF) +mark_as_advanced (HDF5_ENABLE_ANALYZER_TOOLS) +option (HDF5_ENABLE_SANITIZERS "execute the Clang sanitizer" OFF) +mark_as_advanced (HDF5_ENABLE_SANITIZERS) +option (HDF5_ENABLE_FORMATTERS "format source files" OFF) +mark_as_advanced (HDF5_ENABLE_FORMATTERS) + +option (HDF5_ENABLE_COVERAGE "Enable code coverage for Libraries and Programs" OFF) +mark_as_advanced (HDF5_ENABLE_COVERAGE) + +option (HDF5_ENABLE_USING_MEMCHECKER "Indicate that a memory checker is used" OFF) +mark_as_advanced (HDF5_ENABLE_USING_MEMCHECKER) + +option (HDF5_ENABLE_PREADWRITE "Use pread/pwrite in sec2/log/core VFDs in place of read/write (when available)" ON) +mark_as_advanced (HDF5_ENABLE_PREADWRITE) + +option (HDF5_ENABLE_DEPRECATED_SYMBOLS "Enable deprecated public API symbols" ON) + +option (HDF5_MINGW_STATIC_GCC_LIBS "Statically link libgcc/libstdc++" OFF) +mark_as_advanced (HDF5_MINGW_STATIC_GCC_LIBS) + +option (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF) +mark_as_advanced (HDF5_ENABLE_TRACE) + +option (HDF5_ENABLE_EMBEDDED_LIBINFO "Embed library info into executables" ON) +mark_as_advanced (HDF5_ENABLE_EMBEDDED_LIBINFO) + +option (HDF5_ENABLE_HDFS "Enable HDFS" OFF) + +option (HDF5_ENABLE_PARALLEL "Enable parallel build (requires MPI)" OFF) + +option (HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF) +option (HDF5_ENABLE_ZLIB_SUPPORT "Enable Zlib Filters" OFF) + +option (HDF5_PACKAGE_EXTLIBS "CPACK - include external libraries" OFF) +mark_as_advanced (HDF5_PACKAGE_EXTLIBS) + +option (HDF5_ENABLE_THREADSAFE "Enable thread-safety" OFF) + +option (HDF5_ENABLE_CONCURRENCY "Enable multi-threaded concurrency" OFF) + +option (HDF5_ENABLE_MAP_API "Build the map API" OFF) +mark_as_advanced (HDF5_ENABLE_MAP_API) + +option (HDF5_BUILD_DOC "Build documentation" OFF) + +option (HDF5_BUILD_PARALLEL_TOOLS "Build Parallel HDF5 Tools" OFF) +mark_as_advanced (HDF5_BUILD_PARALLEL_TOOLS) + +option (HDF5_BUILD_TOOLS "Build HDF5 Tools" ON) + +option (HDF5_ENABLE_PLUGIN_SUPPORT "Enable PLUGIN Filters" OFF) + +option (HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON) + +option (HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF) + +option (HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF) + +option (HDF5_BUILD_JAVA "Build Java HDF5 Library" OFF) + +option (HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON) + +option (BUILD_TESTING "Build HDF5 Unit Testing" ON) + diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake index 121c375de35..28f747fc03b 100644 --- a/CMakeFilters.cmake +++ b/CMakeFilters.cmake @@ -9,12 +9,12 @@ # If you do not have access to either file, you may request a copy from # help@hdfgroup.org. # -cmake_dependent_option (HDF5_USE_ZLIB_NG "Use zlib-ng library as zlib library" OFF HDF5_ENABLE_ZLIB_SUPPORT OFF) +option (HDF5_USE_ZLIB_NG "Use zlib-ng library as zlib library" OFF) cmake_dependent_option (HDF5_USE_ZLIB_STATIC "Find static zlib library" OFF HDF5_ENABLE_ZLIB_SUPPORT OFF) cmake_dependent_option (HDF5_USE_LIBAEC_STATIC "Find static AEC library" OFF HDF5_ENABLE_SZIP_SUPPORT OFF) -cmake_dependent_option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" OFF HDF5_ENABLE_ZLIB_SUPPORT OFF) +option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" OFF) mark_as_advanced (ZLIB_USE_EXTERNAL) -cmake_dependent_option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" OFF HDF5_ENABLE_SZIP_SUPPORT OFF) +option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" OFF) mark_as_advanced (SZIP_USE_EXTERNAL) cmake_dependent_option (ZLIB_USE_LOCALCONTENT "Use local file for ZLIB FetchContent" OFF HDF5_ENABLE_ZLIB_SUPPORT OFF) mark_as_advanced (ZLIB_USE_LOCALCONTENT) @@ -85,17 +85,17 @@ endif () #----------------------------------------------------------------------------- # Option for ZLib support #----------------------------------------------------------------------------- -set(H5_ZLIB_FOUND FALSE) -if(NOT DEFINED ZLIB_PACKAGE_NAME) - set(ZLIB_PACKAGE_NAME "zlib") +set (H5_ZLIB_FOUND FALSE) +if (NOT DEFINED ZLIB_PACKAGE_NAME) + set (ZLIB_PACKAGE_NAME "zlib") endif () -if(NOT DEFINED ZLIBNG_PACKAGE_NAME) - set(ZLIBNG_PACKAGE_NAME "zlib-ng") +if (NOT DEFINED ZLIBNG_PACKAGE_NAME) + set (ZLIBNG_PACKAGE_NAME "zlib-ng") endif () if (HDF5_ENABLE_ZLIB_SUPPORT) if (NOT H5_ZLIB_HEADER) if (NOT ZLIB_USE_EXTERNAL) - cmake_dependent_option (HDF5_MODULE_MODE_ZLIB "Prefer module mode to find ZLIB" ON "NOT ZLIB_USE_EXTERNAL" OFF) + option (HDF5_MODULE_MODE_ZLIB "Prefer module mode to find ZLIB" ON) mark_as_advanced (HDF5_MODULE_MODE_ZLIB) if (HDF5_USE_ZLIB_NG) set (HDF5_MODULE_MODE_ZLIB OFF CACHE BOOL "" FORCE) @@ -103,7 +103,7 @@ if (HDF5_ENABLE_ZLIB_SUPPORT) else () set (Z_PACKAGE_NAME ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT}) endif () - set(ZLIB_FOUND FALSE) + set (ZLIB_FOUND FALSE) message (VERBOSE "Filter HDF5_ZLIB package name:${Z_PACKAGE_NAME}") if (HDF5_MODULE_MODE_ZLIB) # Expect that the default shared library is expected with FindZLIB.cmake @@ -111,16 +111,16 @@ if (HDF5_ENABLE_ZLIB_SUPPORT) else () # Expect that a correctly built library with CMake config files is available if (HDF5_USE_ZLIB_STATIC) - set(ZLIB_SEARCH_TYPE "static") + set (ZLIB_SEARCH_TYPE "static") if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") - set(ZLIB_USE_STATIC_LIBS ${HDF5_USE_ZLIB_STATIC}) - endif() + set (ZLIB_USE_STATIC_LIBS ${HDF5_USE_ZLIB_STATIC}) + endif () else () - set(ZLIB_SEARCH_TYPE "shared") + set (ZLIB_SEARCH_TYPE "shared") endif () find_package (ZLIB NAMES ${Z_PACKAGE_NAME} CONFIG OPTIONAL_COMPONENTS ${ZLIB_SEARCH_TYPE}) endif () - set(H5_ZLIB_FOUND ${ZLIB_FOUND}) + set (H5_ZLIB_FOUND ${ZLIB_FOUND}) if (H5_ZLIB_FOUND) if (HDF5_USE_ZLIB_NG) set (H5_ZLIB_HEADER "zlib-ng.h") @@ -147,7 +147,7 @@ if (HDF5_ENABLE_ZLIB_SUPPORT) endif () else () # This project is being called from within another and ZLib is already configured - set(H5_ZLIB_FOUND TRUE) + set (H5_ZLIB_FOUND TRUE) endif () if (H5_ZLIB_FOUND) set (H5_HAVE_FILTER_DEFLATE 1) @@ -171,27 +171,27 @@ endif () #----------------------------------------------------------------------------- # Option for SzLib support #----------------------------------------------------------------------------- -set(H5_SZIP_FOUND FALSE) -if(NOT DEFINED LIBAEC_PACKAGE_NAME) - set(LIBAEC_PACKAGE_NAME "libaec") +set (H5_SZIP_FOUND FALSE) +if (NOT DEFINED LIBAEC_PACKAGE_NAME) + set (LIBAEC_PACKAGE_NAME "libaec") endif () if (HDF5_ENABLE_SZIP_SUPPORT) - cmake_dependent_option (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON HDF5_ENABLE_SZIP_SUPPORT OFF) + option (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON) if (NOT SZIP_USE_EXTERNAL) if (HDF5_USE_LIBAEC_STATIC) - set(LIBAEC_SEARCH_TYPE "static") + set (LIBAEC_SEARCH_TYPE "static") else () - set(LIBAEC_SEARCH_TYPE "shared") + set (LIBAEC_SEARCH_TYPE "shared") endif () - set(libaec_USE_STATIC_LIBS ${HDF5_USE_LIBAEC_STATIC}) - set(SZIP_FOUND FALSE) + set (libaec_USE_STATIC_LIBS ${HDF5_USE_LIBAEC_STATIC}) + set (SZIP_FOUND FALSE) # Search pure Config mode, there is not a FindSZIP module available find_package (${LIBAEC_PACKAGE_NAME} NAMES ${LIBAEC_PACKAGE_NAME}${HDF_PACKAGE_EXT} OPTIONAL_COMPONENTS ${LIBAEC_SEARCH_TYPE}) - set(H5_SZIP_FOUND ${${LIBAEC_PACKAGE_NAME}_FOUND}) + set (H5_SZIP_FOUND ${${LIBAEC_PACKAGE_NAME}_FOUND}) if (H5_SZIP_FOUND) set (H5_SZIP_INCLUDE_DIR_GEN ${SZIP_INCLUDE_DIR}) set (H5_SZIP_INCLUDE_DIRS ${H5_SZIP_INCLUDE_DIRS} ${SZIP_INCLUDE_DIR}) - if(LIBAEC_PACKAGE_NAME STREQUAL "libaec") + if (LIBAEC_PACKAGE_NAME STREQUAL "libaec") set (LINK_COMP_LIBS ${LINK_COMP_LIBS} libaec::sz libaec::aec) else () set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES}) diff --git a/CMakeLists.txt b/CMakeLists.txt index 192e08a5126..af92bf28467 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,12 @@ if (POLICY CMP0083) cmake_policy (SET CMP0083 NEW) endif () +if (POLICY CMP0127) + # to evaluate each condition as if(), where is re-parsed + # as if literally written in a call to if(). + cmake_policy (SET CMP0127 NEW) +endif () + # Avoid warning about DOWNLOAD_EXTRACT_TIMESTAMP in CMake 3.24: if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") cmake_policy(SET CMP0135 NEW) @@ -83,6 +89,10 @@ include (CMakeDependentOption) # dependencies of the HDF5 libs may be 'incomplete', add additional # dependencies to this variable so that external projects pick them up # +# Put all global top-level build options into one place at the beginning +#----------------------------------------------------------------------------- +include (CMakeBuildOptions.cmake) + #option (HDF5_EXTERNAL_LIB_PREFIX "Use prefix for custom library naming." "") set (HDF5_EXTERNAL_LIB_PREFIX "" CACHE STRING "Use prefix for custom library naming.") mark_as_advanced (HDF5_EXTERNAL_LIB_PREFIX) @@ -150,15 +160,9 @@ string (TIMESTAMP CONFIG_DATE "%Y-%m-%d") # organization feature. Default to ON for non-Express users. Express users must # explicitly turn off this option to build HDF5 in the Express IDE... # -option (HDF5_USE_FOLDERS "Enable folder grouping of projects in IDEs." ON) -mark_as_advanced (HDF5_USE_FOLDERS) if (HDF5_USE_FOLDERS) set_property (GLOBAL PROPERTY USE_FOLDERS ON) endif () -option (HDF5_NO_PACKAGES "CPACK - Disable packaging" OFF) -mark_as_advanced (HDF5_NO_PACKAGES) -option (HDF5_ALLOW_UNSUPPORTED "Allow unsupported combinations of configure options" OFF) -mark_as_advanced (HDF5_ALLOW_UNSUPPORTED) #----------------------------------------------------------------------------- # Set the core names of all the libraries CORENAME is the base library name @@ -530,11 +534,7 @@ endif () #----------------------------------------------------------------------------- # Option to Build Shared and Static libs, default is both #----------------------------------------------------------------------------- -option (HDF5_ONLY_SHARED_LIBS "Only Build Shared Libraries" OFF) -mark_as_advanced (HDF5_ONLY_SHARED_LIBS) -option (BUILD_STATIC_LIBS "Build Static Libraries" ON) set (H5_ENABLE_STATIC_LIB NO) -option (BUILD_SHARED_LIBS "Build Shared Libraries" ON) set (H5_ENABLE_SHARED_LIB NO) # only shared libraries/tools is true if user forces static OFF @@ -542,8 +542,6 @@ if (NOT BUILD_STATIC_LIBS) set (HDF5_ONLY_SHARED_LIBS ON CACHE BOOL "Only Build Shared Libraries" FORCE) endif () -cmake_dependent_option (HDF5_BUILD_STATIC_TOOLS "Build Static Tools NOT Shared Tools" OFF BUILD_STATIC_LIBS OFF) - # only shared libraries is set ON by user then force settings if (HDF5_ONLY_SHARED_LIBS) set (H5_ENABLE_STATIC_LIB NO) @@ -580,8 +578,6 @@ endif () #----------------------------------------------------------------------------- # Option to Build Static executables #----------------------------------------------------------------------------- -option (BUILD_STATIC_EXECS "Build Static Executables" OFF) -mark_as_advanced (BUILD_STATIC_EXECS) if (BUILD_STATIC_EXECS) if (NOT WIN32) set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static") @@ -589,18 +585,15 @@ if (BUILD_STATIC_EXECS) endif () endif () -option (HDF5_ENABLE_ANALYZER_TOOLS "enable the use of Clang tools" OFF) -mark_as_advanced (HDF5_ENABLE_ANALYZER_TOOLS) +#----------------------------------------------------------------------------- +# Options to analyze the code with various tools +#----------------------------------------------------------------------------- if (HDF5_ENABLE_ANALYZER_TOOLS) include (${HDF_CONFIG_DIR}/sanitizer/tools.cmake) endif () -option (HDF5_ENABLE_SANITIZERS "execute the Clang sanitizer" OFF) -mark_as_advanced (HDF5_ENABLE_SANITIZERS) if (HDF5_ENABLE_SANITIZERS) include (${HDF_CONFIG_DIR}/sanitizer/sanitizers.cmake) endif () -option (HDF5_ENABLE_FORMATTERS "format source files" OFF) -mark_as_advanced (HDF5_ENABLE_FORMATTERS) if (HDF5_ENABLE_FORMATTERS) include (${HDF_CONFIG_DIR}/sanitizer/formatting.cmake) endif () @@ -608,15 +601,13 @@ endif () #----------------------------------------------------------------------------- # Option to use code coverage #----------------------------------------------------------------------------- -option (HDF5_ENABLE_COVERAGE "Enable code coverage for Libraries and Programs" OFF) -mark_as_advanced (HDF5_ENABLE_COVERAGE) if (HDF5_ENABLE_COVERAGE) include (${HDF_CONFIG_DIR}/sanitizer/code-coverage.cmake) - if(CODE_COVERAGE AND CODE_COVERAGE_ADDED) - message(VERBOSE "Add instrumentation to all targets") + if (CODE_COVERAGE AND CODE_COVERAGE_ADDED) + message (VERBOSE "Add instrumentation to all targets") add_code_coverage () # Adds instrumentation to all targets else () - message(VERBOSE "Use --coverage option") + message (VERBOSE "Use --coverage option") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 --coverage -fprofile-arcs -ftest-coverage") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g --coverage -O0 -fprofile-arcs -ftest-coverage") if (CMAKE_C_COMPILER_ID STREQUAL "GNU") @@ -631,8 +622,6 @@ endif () #----------------------------------------------------------------------------- # Option to indicate using a memory checker #----------------------------------------------------------------------------- -option (HDF5_ENABLE_USING_MEMCHECKER "Indicate that a memory checker is used" OFF) -mark_as_advanced (HDF5_ENABLE_USING_MEMCHECKER) if (HDF5_ENABLE_USING_MEMCHECKER) set (H5_USING_MEMCHECKER 1) endif () @@ -640,8 +629,6 @@ endif () #----------------------------------------------------------------------------- # Option to enable/disable using pread/pwrite for VFDs #----------------------------------------------------------------------------- -option (HDF5_ENABLE_PREADWRITE "Use pread/pwrite in sec2/log/core VFDs in place of read/write (when available)" ON) -mark_as_advanced (HDF5_ENABLE_PREADWRITE) if (HDF5_ENABLE_PREADWRITE AND H5_HAVE_PREAD AND H5_HAVE_PWRITE) set (H5_HAVE_PREADWRITE 1) endif () @@ -649,7 +636,6 @@ endif () #----------------------------------------------------------------------------- # Option to use deprecated public API symbols #----------------------------------------------------------------------------- -option (HDF5_ENABLE_DEPRECATED_SYMBOLS "Enable deprecated public API symbols" ON) if (HDF5_ENABLE_DEPRECATED_SYMBOLS) set (H5_NO_DEPRECATED_SYMBOLS 0) else () @@ -669,9 +655,6 @@ if (WIN32) endif () endif () -option (HDF5_MINGW_STATIC_GCC_LIBS "Statically link libgcc/libstdc++" OFF) -mark_as_advanced(HDF5_MINGW_STATIC_GCC_LIBS) - if (MSVC) set (CMAKE_MFC_FLAG 0) set (WIN_COMPILE_FLAGS "") @@ -681,8 +664,6 @@ endif () #----------------------------------------------------------------------------- # Add some definitions for Debug Builds #----------------------------------------------------------------------------- -option (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF) -mark_as_advanced (HDF5_ENABLE_TRACE) if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer") # Enable instrumenting of the library's internal operations cmake_dependent_option (HDF5_ENABLE_INSTRUMENT "Instrument The library" OFF HDF5_ENABLE_TRACE OFF) @@ -695,7 +676,6 @@ if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer") if (HDF5_ENABLE_INSTRUMENT) set (H5_HAVE_INSTRUMENTED_LIBRARY 1) endif () - mark_as_advanced (HDF5_ENABLE_INSTRUMENT) endif () #----------------------------------------------------------------------------- @@ -711,7 +691,6 @@ endif () if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten") set (H5_HAVE_EMBEDDED_LIBINFO 0) else () - option (HDF5_ENABLE_EMBEDDED_LIBINFO "Embed library info into executables" ON) if (HDF5_ENABLE_EMBEDDED_LIBINFO) set (H5_HAVE_EMBEDDED_LIBINFO 1) endif () @@ -723,13 +702,12 @@ set (CMAKE_MODULE_PATH ${HDF_CONFIG_DIR} ${HDF_RESOURCES_DIR} ${CMAKE_MODULE_PAT #----------------------------------------------------------------------------- # Option to Enable HDFS #----------------------------------------------------------------------------- -option (HDF5_ENABLE_HDFS "Enable HDFS" OFF) if (HDF5_ENABLE_HDFS) - find_package(JNI REQUIRED) + find_package (JNI REQUIRED) if (JNI_FOUND) set (H5_HAVE_LIBJVM 1) endif () - find_package(HDFS REQUIRED) + find_package (HDFS REQUIRED) if (HDFS_FOUND) set (H5_HAVE_LIBHDFS 1) set (H5_HAVE_HDFS_H 1) @@ -745,9 +723,8 @@ endif () #----------------------------------------------------------------------------- # Option to Enable MPI Parallel #----------------------------------------------------------------------------- -option (HDF5_ENABLE_PARALLEL "Enable parallel build (requires MPI)" OFF) if (HDF5_ENABLE_PARALLEL) - find_package(MPI REQUIRED) + find_package (MPI REQUIRED) if (MPI_C_FOUND) set (H5_HAVE_PARALLEL 1) @@ -926,8 +903,6 @@ include (UserMacros.cmake) #----------------------------------------------------------------------------- # Include filter (zlib, szip, etc.) macros #----------------------------------------------------------------------------- -option (HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF) -option (HDF5_ENABLE_ZLIB_SUPPORT "Enable Zlib Filters" OFF) if (HDF5_ENABLE_ZLIB_SUPPORT OR HDF5_ENABLE_SZIP_SUPPORT) include (CMakeFilters.cmake) endif () @@ -940,7 +915,6 @@ include (CMakeVOL.cmake) #----------------------------------------------------------------------------- # Option for external libraries on windows #----------------------------------------------------------------------------- -option (HDF5_PACKAGE_EXTLIBS "CPACK - include external libraries" OFF) if (NOT HDF5_EXTERNALLY_CONFIGURED) if (HDF5_PACKAGE_EXTLIBS) set (HDF5_NO_PACKAGES OFF CACHE BOOL "CPACK - Disable packaging" FORCE) @@ -950,7 +924,6 @@ endif () #----------------------------------------------------------------------------- # Option to use threadsafe #----------------------------------------------------------------------------- -option (HDF5_ENABLE_THREADSAFE "Enable thread-safety" OFF) if (HDF5_ENABLE_THREADSAFE) # check for unsupported options if (WIN32) @@ -998,7 +971,6 @@ endif () #----------------------------------------------------------------------------- # Option to use multi-threaded concurrency #----------------------------------------------------------------------------- -option (HDF5_ENABLE_CONCURRENCY "Enable multi-threaded concurrency" OFF) if (HDF5_ENABLE_CONCURRENCY) # check for unsupported options if (WIN32) @@ -1051,7 +1023,6 @@ endif () #----------------------------------------------------------------------------- # Option to build the map API #----------------------------------------------------------------------------- -option (HDF5_ENABLE_MAP_API "Build the map API" OFF) if (HDF5_ENABLE_MAP_API) set (H5_HAVE_MAP_API 1) else () @@ -1087,10 +1058,9 @@ endif () #----------------------------------------------------------------------------- # Option to build documentation #----------------------------------------------------------------------------- -option (HDF5_BUILD_DOC "Build documentation" OFF) if (HDF5_BUILD_DOC AND EXISTS "${HDF5_DOXYGEN_DIR}" AND IS_DIRECTORY "${HDF5_DOXYGEN_DIR}") # check if Doxygen is installed - find_package(Doxygen) + find_package (Doxygen) if (DOXYGEN_FOUND) option (HDF5_ENABLE_DOXY_WARNINGS "Enable fail if doxygen parsing has warnings." OFF) mark_as_advanced (HDF5_ENABLE_DOXY_WARNINGS) @@ -1099,17 +1069,16 @@ if (HDF5_BUILD_DOC AND EXISTS "${HDF5_DOXYGEN_DIR}" AND IS_DIRECTORY "${HDF5_DOX else () set (HDF5_DOXY_WARNINGS "NO") endif () - message(VERBOSE "Doxygen version: ${DOXYGEN_VERSION}") + message (VERBOSE "Doxygen version: ${DOXYGEN_VERSION}") add_subdirectory (doxygen) else () - message(WARNING "Doxygen needs to be installed to generate the doxygen documentation") + message (WARNING "Doxygen needs to be installed to generate the doxygen documentation") endif () endif () #----------------------------------------------------------------------------- # Dashboard and Testing Settings #----------------------------------------------------------------------------- -option (BUILD_TESTING "Build HDF5 Unit Testing" ON) if (BUILD_TESTING) include (CMakeTests.cmake) endif () @@ -1118,7 +1087,6 @@ endif () # Option to build HDF5 Utilities #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/utils" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/utils") - option (HDF5_BUILD_PARALLEL_TOOLS "Build Parallel HDF5 Tools" OFF) if (HDF5_BUILD_PARALLEL_TOOLS AND HDF5_ENABLE_PARALLEL) set (CMAKE_PREFIX_PATH "$HDF_RESOURCES_DIR") find_package (MFU REQUIRED) @@ -1150,7 +1118,6 @@ endif () # Option to build HDF5 Tools #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools") - option (HDF5_BUILD_TOOLS "Build HDF5 Tools" ON) if (HDF5_BUILD_TOOLS) add_subdirectory (tools) endif () @@ -1159,7 +1126,6 @@ endif () #----------------------------------------------------------------------------- # Include filter plugins #----------------------------------------------------------------------------- -option (HDF5_ENABLE_PLUGIN_SUPPORT "Enable PLUGIN Filters" OFF) if (HDF5_ENABLE_PLUGIN_SUPPORT) if (${H5_LIBVER_DIR} EQUAL 16 OR HDF5_DEFAULT_API_VERSION MATCHES "v16") set (HDF5_ENABLE_PLUGIN_SUPPORT OFF CACHE BOOL "" FORCE) @@ -1177,7 +1143,6 @@ endif () # Option to build High Level API's #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl") - option (HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON) if (HDF5_BUILD_HL_LIB) set (H5_INCLUDE_HL 1) add_subdirectory (hl) @@ -1193,7 +1158,6 @@ endif () set (H5_FC_FUNC "H5_FC_FUNC(name,NAME) name ## _" CACHE INTERNAL "Fortran name mangling macro for C identifiers without underscores") set (H5_FC_FUNC_ "H5_FC_FUNC_(name,NAME) name ## _" CACHE INTERNAL "Fortran name mangling macro for C identifiers with underscores") if (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/fortran") - option (HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF) if (HDF5_BUILD_FORTRAN) add_subdirectory (fortran) if (HDF5_BUILD_HL_LIB) @@ -1209,7 +1173,6 @@ endif () # Option to build HDF5 C++ Library #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++") - option (HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF) if (HDF5_BUILD_CPP_LIB) # check for unsupported options if (HDF5_ENABLE_PARALLEL) @@ -1236,7 +1199,6 @@ endif () # Option to build HDF5 Java Library #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/java" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/java") - option (HDF5_BUILD_JAVA "Build Java HDF5 Library" OFF) if (HDF5_BUILD_JAVA) if (NOT BUILD_SHARED_LIBS) message (FATAL_ERROR "\nJava requires shared libraries!\n") @@ -1255,7 +1217,6 @@ configure_file (${HDF_CONFIG_DIR}/H5pubconf.h.in ${HDF5_SRC_BINARY_DIR}/H5pubcon # Option to build examples #----------------------------------------------------------------------------- if (EXISTS "${HDF5_SOURCE_DIR}/HDF5Examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/HDF5Examples") - option (HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON) if (HDF5_BUILD_EXAMPLES AND NOT HDF5_USE_SANITIZER) include (${HDF_RESOURCES_DIR}/HDF5ExampleCache.cmake) set (HDF5_VERSION ${HDF5_PACKAGE_VERSION}) diff --git a/CMakeTests.cmake b/CMakeTests.cmake index 516ada5d7b9..902694346c4 100644 --- a/CMakeTests.cmake +++ b/CMakeTests.cmake @@ -23,7 +23,7 @@ math (EXPR CTEST_LONG_TIMEOUT "${DART_TESTING_TIMEOUT} * 2") math (EXPR CTEST_VERY_LONG_TIMEOUT "${DART_TESTING_TIMEOUT} * 3") - cmake_dependent_option (HDF5_DISABLE_TESTS_REGEX "Regex pattern to set execution of specific tests to DISABLED" "" BUILD_TESTING "") + option (HDF5_DISABLE_TESTS_REGEX "Regex pattern to set execution of specific tests to DISABLED" "") mark_as_advanced (HDF5_DISABLE_TESTS_REGEX) if (HDF5_ENABLE_ROS3_VFD) @@ -33,41 +33,37 @@ endif () endif () - cmake_dependent_option (HDF5_TEST_API "Execute HDF5 API tests" ON BUILD_TESTING OFF) + option (HDF5_TEST_API "Execute HDF5 API tests" ON) mark_as_advanced (HDF5_TEST_API) - if (HDF5_TEST_API) - cmake_dependent_option (HDF5_TEST_API_INSTALL "Install HDF5 API tests" OFF HDF5_TEST_API OFF) - mark_as_advanced (HDF5_TEST_API_INSTALL) + cmake_dependent_option (HDF5_TEST_API_INSTALL "Install HDF5 API tests" OFF HDF5_TEST_API OFF) + mark_as_advanced (HDF5_TEST_API_INSTALL) - # Enable HDF5 Async API tests - cmake_dependent_option (HDF5_TEST_API_ENABLE_ASYNC "Enable HDF5 Async API tests" OFF HDF5_TEST_API OFF) - mark_as_advanced (HDF5_TEST_API_ENABLE_ASYNC) + # Enable HDF5 Async API tests + cmake_dependent_option (HDF5_TEST_API_ENABLE_ASYNC "Enable HDF5 Async API tests" OFF HDF5_TEST_API OFF) + mark_as_advanced (HDF5_TEST_API_ENABLE_ASYNC) - # Build and use HDF5 test driver program for API tests - cmake_dependent_option (HDF5_TEST_API_ENABLE_DRIVER "Enable HDF5 API test driver program" OFF HDF5_TEST_API OFF) - mark_as_advanced (HDF5_TEST_API_ENABLE_DRIVER) - if (HDF5_TEST_API_ENABLE_DRIVER) - set (HDF5_TEST_API_SERVER "" CACHE STRING "Server executable for running API tests") - mark_as_advanced (HDF5_TEST_API_SERVER) - endif () + # Build and use HDF5 test driver program for API tests + cmake_dependent_option (HDF5_TEST_API_ENABLE_DRIVER "Enable HDF5 API test driver program" OFF HDF5_TEST_API OFF) + mark_as_advanced (HDF5_TEST_API_ENABLE_DRIVER) + if (HDF5_TEST_API_ENABLE_DRIVER) + set (HDF5_TEST_API_SERVER "" CACHE STRING "Server executable for running API tests") + mark_as_advanced (HDF5_TEST_API_SERVER) endif () - cmake_dependent_option (HDF5_TEST_VFD "Execute tests with different VFDs" OFF BUILD_TESTING OFF) + option (HDF5_TEST_VFD "Execute tests with different VFDs" OFF) mark_as_advanced (HDF5_TEST_VFD) + cmake_dependent_option (HDF5_TEST_FHEAP_VFD "Execute tests with different VFDs" ON HDF5_TEST_VFD OFF) + mark_as_advanced (HDF5_TEST_FHEAP_VFD) + if (HDF5_TEST_VFD) - cmake_dependent_option (HDF5_TEST_FHEAP_VFD "Execute tests with different VFDs" ON HDF5_TEST_VFD OFF) - mark_as_advanced (HDF5_TEST_FHEAP_VFD) - # Initialize the list of VFDs to be used for testing and create a test folder for each VFD - H5_SET_VFD_LIST() + H5_SET_VFD_LIST () endif () - cmake_dependent_option (HDF5_TEST_PASSTHROUGH_VOL "Execute tests with different passthrough VOL connectors" OFF BUILD_TESTING OFF) + option (HDF5_TEST_PASSTHROUGH_VOL "Execute tests with different passthrough VOL connectors" OFF) mark_as_advanced (HDF5_TEST_PASSTHROUGH_VOL) - if (HDF5_TEST_PASSTHROUGH_VOL) - cmake_dependent_option (HDF5_TEST_FHEAP_PASSTHROUGH_VOL "Execute fheap test with different passthrough VOL connectors" ON HDF5_TEST_PASSTHROUGH_VOL OFF) - mark_as_advanced (HDF5_TEST_FHEAP_PASSTHROUGH VOL) - endif () + cmake_dependent_option (HDF5_TEST_FHEAP_PASSTHROUGH_VOL "Execute fheap test with different passthrough VOL connectors" ON HDF5_TEST_PASSTHROUGH_VOL OFF) + mark_as_advanced (HDF5_TEST_FHEAP_PASSTHROUGH VOL) set (H5_TEST_EXPRESS_LEVEL_DEFAULT "3") set (HDF_TEST_EXPRESS "${H5_TEST_EXPRESS_LEVEL_DEFAULT}" @@ -83,28 +79,27 @@ include (${HDF5_SOURCE_DIR}/CTestConfig.cmake) configure_file (${HDF_CONFIG_DIR}/CTestCustom.cmake ${HDF5_BINARY_DIR}/CTestCustom.ctest @ONLY) - cmake_dependent_option (HDF5_TEST_SERIAL "Execute non-parallel tests" ON BUILD_TESTING OFF) + option (HDF5_TEST_SERIAL "Execute non-parallel tests" ON) mark_as_advanced (HDF5_TEST_SERIAL) - cmake_dependent_option (HDF5_TEST_TOOLS "Execute tools tests" ON "BUILD_TESTING;HDF5_BUILD_TOOLS" OFF) - mark_as_advanced (HDF5_TEST_TOOLS) + cmake_dependent_option (HDF5_TEST_TOOLS "Execute tools tests" ON "HDF5_BUILD_TOOLS" OFF) - cmake_dependent_option (HDF5_TEST_EXAMPLES "Execute tests on examples" ON "BUILD_TESTING;HDF5_BUILD_EXAMPLES" OFF) + cmake_dependent_option (HDF5_TEST_EXAMPLES "Execute tests on examples" ON "HDF5_BUILD_EXAMPLES" OFF) mark_as_advanced (HDF5_TEST_EXAMPLES) - cmake_dependent_option (HDF5_TEST_SWMR "Execute SWMR tests" ON BUILD_TESTING OFF) + option (HDF5_TEST_SWMR "Execute SWMR tests" ON) mark_as_advanced (HDF5_TEST_SWMR) - cmake_dependent_option (HDF5_TEST_PARALLEL "Execute parallel tests" ON "BUILD_TESTING;HDF5_ENABLE_PARALLEL" OFF) + cmake_dependent_option (HDF5_TEST_PARALLEL "Execute parallel tests" ON "HDF5_ENABLE_PARALLEL" OFF) mark_as_advanced (HDF5_TEST_PARALLEL) - cmake_dependent_option (HDF5_TEST_FORTRAN "Execute fortran tests" ON "BUILD_TESTING;HDF5_BUILD_FORTRAN" OFF) + cmake_dependent_option (HDF5_TEST_FORTRAN "Execute fortran tests" ON "HDF5_BUILD_FORTRAN" OFF) mark_as_advanced (HDF5_TEST_FORTRAN) - cmake_dependent_option (HDF5_TEST_CPP "Execute cpp tests" ON "BUILD_TESTING;HDF5_BUILD_CPP_LIB" OFF) + cmake_dependent_option (HDF5_TEST_CPP "Execute cpp tests" ON "HDF5_BUILD_CPP_LIB" OFF) mark_as_advanced (HDF5_TEST_CPP) - cmake_dependent_option (HDF5_TEST_JAVA "Execute java tests" ON "BUILD_TESTING;HDF5_BUILD_JAVA" OFF) + cmake_dependent_option (HDF5_TEST_JAVA "Execute java tests" ON "HDF5_BUILD_JAVA" OFF) mark_as_advanced (HDF5_TEST_JAVA) if (NOT HDF5_EXTERNALLY_CONFIGURED) diff --git a/CMakeVOL.cmake b/CMakeVOL.cmake index 17550a49147..1b2fb48bd58 100644 --- a/CMakeVOL.cmake +++ b/CMakeVOL.cmake @@ -19,7 +19,7 @@ function (get_generated_cmake_targets out_var dir) get_directory_property (dir_subdirs DIRECTORY "${dir}" SUBDIRECTORIES) foreach (subdir ${dir_subdirs}) - get_generated_cmake_targets(subdir_targets "${subdir}") + get_generated_cmake_targets (subdir_targets "${subdir}") list (APPEND dir_targets "${subdir_targets}") endforeach() @@ -184,15 +184,15 @@ if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT" OR HDF5_VOL_ALLOW_EXTERNAL MATCHES "LO GIT_TAG "${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}" "${OVERRIDE_FIND_PACKAGE_OPT}" ) - elseif(HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR") + elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR") FetchContent_Declare (${hdf5_vol_depname} - SOURCE_DIR "${HDF5_VOL_SOURCE}" + SOURCE_DIR "${HDF5_VOL_SOURCE}" ) - endif() + endif () - FetchContent_GetProperties(${hdf5_vol_depname}) + FetchContent_GetProperties (${hdf5_vol_depname}) if (NOT ${hdf5_vol_depname}_POPULATED) - FetchContent_Populate(${hdf5_vol_depname}) + FetchContent_Populate (${hdf5_vol_depname}) # Now that content has been populated, set other internal # convenience variables for FetchContent dependency @@ -203,8 +203,8 @@ if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT" OR HDF5_VOL_ALLOW_EXTERNAL MATCHES "LO if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT") message (SEND_ERROR "The git repository branch '${HDF5_VOL_${hdf5_vol_name_upper}_BRANCH}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file") elseif (HDF5_VOL_ALLOW_EXTERNAL MATCHES "LOCAL_DIR") - message(SEND_ERROR "The local directory '${HDF5_VOL_SOURCE}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file") - endif() + message (SEND_ERROR "The local directory '${HDF5_VOL_SOURCE}' for VOL connector '${hdf5_vol_name}' does not appear to contain a CMakeLists.txt file") + endif () endif () # If there are any calls to find_package(HDF5) in the connector's @@ -236,48 +236,48 @@ if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT" OR HDF5_VOL_ALLOW_EXTERNAL MATCHES "LO # Define and set a custom property on the VOL connector target to # capture all of the connector's generated targets define_property ( - TARGET - PROPERTY HDF5_VOL_TARGETS - BRIEF_DOCS "Generated targets of this connector" - FULL_DOCS "Generated targets of this connector" + TARGET + PROPERTY HDF5_VOL_TARGETS + BRIEF_DOCS "Generated targets of this connector" + FULL_DOCS "Generated targets of this connector" ) set_target_properties ( - "HDF5_VOL_${hdf5_vol_name_lower}" - PROPERTIES - HDF5_VOL_TARGETS "${connector_targets}" + "HDF5_VOL_${hdf5_vol_name_lower}" + PROPERTIES + HDF5_VOL_TARGETS "${connector_targets}" ) # Define and set a custom property on the VOL connector target to # capture the connector's name to set for the HDF5_VOL_CONNECTOR # environment variable for testing define_property ( - TARGET - PROPERTY HDF5_VOL_NAME - BRIEF_DOCS "VOL connector name to use for the HDF5_VOL_CONNECTOR environment variable when testing" - FULL_DOCS "VOL connector name to use for the HDF5_VOL_CONNECTOR environment variable when testing" + TARGET + PROPERTY HDF5_VOL_NAME + BRIEF_DOCS "VOL connector name to use for the HDF5_VOL_CONNECTOR environment variable when testing" + FULL_DOCS "VOL connector name to use for the HDF5_VOL_CONNECTOR environment variable when testing" ) set_target_properties ( - "HDF5_VOL_${hdf5_vol_name_lower}" - PROPERTIES - HDF5_VOL_NAME "${HDF5_VOL_${hdf5_vol_name_upper}_NAME}" + "HDF5_VOL_${hdf5_vol_name_lower}" + PROPERTIES + HDF5_VOL_NAME "${HDF5_VOL_${hdf5_vol_name_upper}_NAME}" ) # Define and set a custom property on the VOL connector target to # capture whether the connector should be tested with the parallel # API tests define_property ( - TARGET - PROPERTY HDF5_VOL_TEST_PARALLEL - BRIEF_DOCS "Whether the VOL connector should be tested with the parallel API tests" - FULL_DOCS "Whether the VOL connector should be tested with the parallel API tests" + TARGET + PROPERTY HDF5_VOL_TEST_PARALLEL + BRIEF_DOCS "Whether the VOL connector should be tested with the parallel API tests" + FULL_DOCS "Whether the VOL connector should be tested with the parallel API tests" ) set_target_properties ( - "HDF5_VOL_${hdf5_vol_name_lower}" - PROPERTIES - HDF5_VOL_TEST_PARALLEL ${HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL} + "HDF5_VOL_${hdf5_vol_name_lower}" + PROPERTIES + HDF5_VOL_TEST_PARALLEL ${HDF5_VOL_${hdf5_vol_name_upper}_TEST_PARALLEL} ) # Add this VOL connector's target to the list of external connector targets diff --git a/HDF5Examples/C/H5FLT/h5ex_d_bitgroom.c b/HDF5Examples/C/H5FLT/h5ex_d_bitgroom.c index a3ebc496b01..506049e8a10 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_bitgroom.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_bitgroom.c @@ -144,7 +144,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_blosc.c b/HDF5Examples/C/H5FLT/h5ex_d_blosc.c index 85d94e9c96d..c8535ccdd9e 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_blosc.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_blosc.c @@ -139,7 +139,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_blosc2.c b/HDF5Examples/C/H5FLT/h5ex_d_blosc2.c index 395bf4d9c91..3f091fbd086 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_blosc2.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_blosc2.c @@ -139,7 +139,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_bshuf.c b/HDF5Examples/C/H5FLT/h5ex_d_bshuf.c index c51d5d7fe4c..46a9d0277c0 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_bshuf.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_bshuf.c @@ -139,7 +139,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_bzip2.c b/HDF5Examples/C/H5FLT/h5ex_d_bzip2.c index 751e7a5b08b..6ad52bcdd4a 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_bzip2.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_bzip2.c @@ -139,7 +139,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_jpeg.c b/HDF5Examples/C/H5FLT/h5ex_d_jpeg.c index d0fe0e54203..7c6c66023e7 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_jpeg.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_jpeg.c @@ -151,7 +151,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - fprintf(stdout, "/nFAILED to close library/n"); + fprintf(stdout, "\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_lz4.c b/HDF5Examples/C/H5FLT/h5ex_d_lz4.c index d86e34e65fa..e1cd5bb0bbb 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_lz4.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_lz4.c @@ -139,7 +139,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_lzf.c b/HDF5Examples/C/H5FLT/h5ex_d_lzf.c index 010518b03c7..41f5776494a 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_lzf.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_lzf.c @@ -139,7 +139,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_mafisc.c b/HDF5Examples/C/H5FLT/h5ex_d_mafisc.c index fbc6dfa80ec..22255d2bb28 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_mafisc.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_mafisc.c @@ -139,7 +139,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_zfp.c b/HDF5Examples/C/H5FLT/h5ex_d_zfp.c index 55e39bc22b2..f4bb6a97694 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_zfp.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_zfp.c @@ -139,7 +139,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/HDF5Examples/C/H5FLT/h5ex_d_zstd.c b/HDF5Examples/C/H5FLT/h5ex_d_zstd.c index 60d1f707ca1..183686fafa4 100644 --- a/HDF5Examples/C/H5FLT/h5ex_d_zstd.c +++ b/HDF5Examples/C/H5FLT/h5ex_d_zstd.c @@ -146,7 +146,7 @@ main(void) file_id = -1; status = H5close(); if (status < 0) { - printf("/nFAILED to close library/n"); + printf("\nFAILED to close library\n"); goto done; } diff --git a/config/ConfigureChecks.cmake b/config/ConfigureChecks.cmake index 6b94cebe912..b713c60d9c3 100644 --- a/config/ConfigureChecks.cmake +++ b/config/ConfigureChecks.cmake @@ -616,7 +616,7 @@ if (HDF5_ENABLE_ROS3_VFD) set (${HDF_PREFIX}_HAVE_ROS3_VFD 1) - cmake_dependent_option (HDF5_ENABLE_ROS3_VFD_DOCKER_PROXY "Use docker for ROS3 VFD S3proxy testing" OFF HDF5_ENABLE_ROS3_VFD OFF) + option (HDF5_ENABLE_ROS3_VFD_DOCKER_PROXY "Use docker for ROS3 VFD S3proxy testing" OFF) if (HDF5_ENABLE_ROS3_VFD_DOCKER_PROXY) # check if docker is available find_program (DOCKER_EXECUTABLE docker) @@ -981,7 +981,10 @@ H5ConversionTests (${HDF_PREFIX}_DISABLE_SOME_LDOUBLE_CONV FALSE "Checking IF th # be enabled or disabled with their respective options below option (HDF5_ENABLE_NONSTANDARD_FEATURES "Enable support for non-standard programming language features" ON) # Options for enabling or disabling individual features -cmake_dependent_option (HDF5_ENABLE_NONSTANDARD_FEATURE_FLOAT16 "Enable support for _Float16 C datatype" ON HDF5_ENABLE_NONSTANDARD_FEATURES OFF) +option (HDF5_ENABLE_NONSTANDARD_FEATURE_FLOAT16 "Enable support for _Float16 C datatype" ON) +if (NOT HDF5_ENABLE_NONSTANDARD_FEATURES) + set (HDF5_ENABLE_NONSTANDARD_FEATURE_FLOAT16 OFF CACHE BOOL "Enable support for _Float16 C datatype" FORCE) +endif () #----------------------------------------------------------------------------- # Check if _Float16 type is available diff --git a/config/HDF5Macros.cmake b/config/HDF5Macros.cmake index f0824ac85c6..23b5fcd90f9 100644 --- a/config/HDF5Macros.cmake +++ b/config/HDF5Macros.cmake @@ -29,7 +29,7 @@ macro (H5_SET_LIB_OPTIONS libtarget libname libtype libpackage) set_target_properties (${libtarget} PROPERTIES SOVERSION ${LIBHDF_VERSION}) endif () if (CMAKE_C_OSX_CURRENT_VERSION_FLAG) - set_property(TARGET ${libtarget} APPEND PROPERTY + set_property (TARGET ${libtarget} APPEND PROPERTY LINK_FLAGS "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}${PACKAGE_CURRENT} ${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}${PACKAGE_COMPATIBILITY}" ) endif () @@ -39,7 +39,7 @@ macro (H5_SET_LIB_OPTIONS libtarget libname libtype libpackage) #-- Apple Specific install_name for libraries if (APPLE) cmake_dependent_option (HDF5_BUILD_WITH_INSTALL_NAME "Build with library install_name set to the installation path" OFF APPLE OFF) - mark_as_advanced(HDF5_BUILD_WITH_INSTALL_NAME) + mark_as_advanced (HDF5_BUILD_WITH_INSTALL_NAME) if (HDF5_BUILD_WITH_INSTALL_NAME) set_target_properties (${libtarget} PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib" @@ -49,7 +49,7 @@ macro (H5_SET_LIB_OPTIONS libtarget libname libtype libpackage) if (HDF5_BUILD_FRAMEWORKS) if (${libtype} MATCHES "SHARED") # adapt target to build frameworks instead of dylibs - set_target_properties(${libtarget} PROPERTIES + set_target_properties (${libtarget} PROPERTIES XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" FRAMEWORK TRUE FRAMEWORK_VERSION ${HDF5_PACKAGE_VERSION_MAJOR} diff --git a/config/HDFMacros.cmake b/config/HDFMacros.cmake index 22beab5e210..1edf87bf56e 100644 --- a/config/HDFMacros.cmake +++ b/config/HDFMacros.cmake @@ -28,7 +28,7 @@ macro (SET_HDF_OUTPUT_DIRS package_prefix) ${PROJECT_BINARY_DIR}/mod CACHE PATH "Single Directory for all fortran modules." ) get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) - if(_isMultiConfig) + if (_isMultiConfig) set (CMAKE_TEST_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${HDF_CFG_NAME}) set (CMAKE_PDB_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin CACHE PATH "Single Directory for all pdb files." diff --git a/hl/CMakeLists.txt b/hl/CMakeLists.txt index bff4bc0a07c..ec51d58c3ca 100644 --- a/hl/CMakeLists.txt +++ b/hl/CMakeLists.txt @@ -4,7 +4,7 @@ project (HDF5_HL C) #----------------------------------------------------------------------------- # Option to use new-style references with dimension scale APIs #----------------------------------------------------------------------------- -cmake_dependent_option (HDF5_DIMENSION_SCALES_NEW_REF "Use new-style references with dimension scale APIs" OFF HDF5_BUILD_HL_LIB OFF) +option (HDF5_DIMENSION_SCALES_NEW_REF "Use new-style references with dimension scale APIs" OFF) if (HDF5_DIMENSION_SCALES_NEW_REF) set (H5_DIMENSION_SCALES_WITH_NEW_REF 1) endif () diff --git a/java/CMakeLists.txt b/java/CMakeLists.txt index 4b59c73bfae..0a4371917a8 100644 --- a/java/CMakeLists.txt +++ b/java/CMakeLists.txt @@ -61,7 +61,7 @@ install ( #----------------------------------------------------------------------------- # Option to include jre #----------------------------------------------------------------------------- -cmake_dependent_option (HDF5_JAVA_PACK_JRE "Package a JRE installer directory" OFF HDF5_BUILD_JAVA OFF) +option (HDF5_JAVA_PACK_JRE "Package a JRE installer directory" OFF) if (HDF5_JAVA_PACK_JRE) install ( DIRECTORY ${HDF_JRE_DIRECTORY} diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 1a8a439cf13..571013fb91b 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -800,6 +800,15 @@ Bug Fixes since HDF5-2.0.0 release Configuration ------------- + - Reorganized CMake HDF5 configuration options + + The CMake configuration options have been reorganized to identify the + primary options that are relevant to the build. These options are now + in a separate file, CMakeBuildOptions.cmake, which is included by the + root CMakeLists.txt file. In addition some options have been converted + to cmake_dependent_option() calls, which allows the options to be hidden + from the CMake GUI when they are not relevant to the build. + - Remove default setting of CMAKE_DEBUG_POSTFIX Move the default setting of CMAKE_DEBUG_POSTFIX to the cacheinit.cmake file