summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/cmake/H5pubconf.h.in7
-rw-r--r--config/cmake/HDF5PluginMacros.cmake146
-rw-r--r--config/cmake/HDF5_Examples_options.cmake1
-rw-r--r--config/cmake/PkgInfo.in2
-rw-r--r--config/cmake/README.txt.cmake.in12
-rw-r--r--config/cmake/cacheinit.cmake128
-rw-r--r--config/cmake/hdf5-config.cmake.in1
-rw-r--r--config/cmake_ext_mod/ConfigureChecks.cmake1
-rw-r--r--config/cmake_ext_mod/HDFMacros.cmake24
-rw-r--r--config/cmake_ext_mod/HDFTests.c2
-rw-r--r--config/cmake_ext_mod/grepTest.cmake4
-rw-r--r--config/cmake_ext_mod/runTest.cmake6
-rw-r--r--config/sanitizer/formatting.cmake52
-rw-r--r--config/sanitizer/tools.cmake2
14 files changed, 321 insertions, 67 deletions
diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in
index 15a16b4..faf9fa1 100644
--- a/config/cmake/H5pubconf.h.in
+++ b/config/cmake/H5pubconf.h.in
@@ -383,8 +383,13 @@
/* Define to 1 if you have the <szlib.h> header file. */
#cmakedefine H5_HAVE_SZLIB_H @H5_HAVE_SZLIB_H@
+#if defined(_WIN32) && !defined(H5_BUILT_AS_DYNAMIC_LIB)
+/* Not supported on WIN32 platforms with static linking */
+/* #undef H5_HAVE_THREADSAFE */
+#else
/* Define if we have thread safe support */
-#cmakedefine H5_HAVE_THREADSAFE @H5_HAVE_THREADSAFE@
+# cmakedefine H5_HAVE_THREADSAFE @H5_HAVE_THREADSAFE@
+#endif
/* Define if timezone is a global variable */
#cmakedefine H5_HAVE_TIMEZONE @H5_HAVE_TIMEZONE@
diff --git a/config/cmake/HDF5PluginMacros.cmake b/config/cmake/HDF5PluginMacros.cmake
new file mode 100644
index 0000000..46d3979
--- /dev/null
+++ b/config/cmake/HDF5PluginMacros.cmake
@@ -0,0 +1,146 @@
+#-------------------------------------------------------------------------------
+# Plugins must be built SHARED
+#-------------------------------------------------------------------------------
+macro (EXTERNAL_PLUGIN_LIBRARY compress_type)
+ if (${compress_type} MATCHES "GIT")
+ EXTERNALPROJECT_ADD (PLUGIN
+ GIT_REPOSITORY ${PLUGIN_URL}
+ GIT_TAG ${PLUGIN_BRANCH}
+ LIST_SEPARATOR |
+ INSTALL_COMMAND ""
+ CMAKE_ARGS
+ -DUSE_SHARED_LIBS:BOOL=ON
+ -DBUILD_SHARED_LIBS:BOOL=ON
+ -DH5PL_ALLOW_EXTERNAL_SUPPORT:STRING=${HDF5_ALLOW_EXTERNAL_SUPPORT}
+ -DBUILD_TESTING:STRING=OFF
+ -DBUILD_EXAMPLES:STRING=OFF
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
+ -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+ -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
+ -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
+ -DCMAKE_PDB_OUTPUT_DIRECTORY:PATH=${CMAKE_PDB_OUTPUT_DIRECTORY}
+ -DDISABLE_PLUGIN_ENCODER:BOOL=OFF
+ -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
+ -DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
+ # the hdf5 settings
+ -DHDF5_PACKAGE_NAME:STRING=hdf5
+ -DHDF5_HDF5_HEADER:STRING=h5pubconf.h
+ -DHDF5_LINK_LIBS:STRING=$<TARGET_LINKER_FILE:${HDF5_LIBSH_TARGET}>
+ -DHDF5_INCLUDE_DIR:PATH=${HDF5_SRC_DIR}|${HDF5_SRC_BINARY_DIR}
+ -DPL_PACKAGE_NAME:STRING=${PLUGIN_PACKAGE_NAME}
+ -DH5PL_CPACK_ENABLE:BOOL=ON
+ -DHDF5_DIR:STRING=${CMAKE_CURRENT_BINARY_DIR}
+ -DTGZPATH:PATH=${TGZPATH}
+ # the filters
+ -DBSHUF_TGZ_NAME:STRING=${BSHUF_TGZ_NAME}
+ -DBSHUF_PACKAGE_NAME:STRING=${BSHUF_PACKAGE_NAME}
+ -DBLOSC_TGZ_NAME:STRING=${BLOSC_TGZ_NAME}
+ -DBLOSC_PACKAGE_NAME:STRING=${BLOSC_PACKAGE_NAME}
+ -DZLIB_TGZ_NAME:STRING=${ZLIB_TGZ_NAME}
+ -DZLIB_PACKAGE_NAME:STRING=${ZLIB_PACKAGE_NAME}
+ -DBZ2_TGZ_NAME:STRING=${BZ2_TGZ_NAME}
+ -DBZ2_PACKAGE_NAME:STRING=${BZ2_PACKAGE_NAME}
+ #-DFPZIP_TGZ_NAME:STRING=${FPZIP_TGZ_NAME}
+ #-DFPZIP_PACKAGE_NAME:STRING=${FPZIP_PACKAGE_NAME}
+ -DJPEG_TGZ_NAME:STRING=${JPEG_TGZ_NAME}
+ -DJPEG_PACKAGE_NAME:STRING=${JPEG_PACKAGE_NAME}
+ -DLZ4_TGZ_NAME:STRING=${LZ4_TGZ_NAME}
+ -DLZ4_PACKAGE_NAME:STRING=${LZ4_PACKAGE_NAME}
+ -DLZF_TGZ_NAME:STRING=${LZF_TGZ_NAME}
+ -DLZF_PACKAGE_NAME:STRING=${LZF_PACKAGE_NAME}
+ -DSZF_TGZ_NAME:STRING=${SZF_TGZ_NAME}
+ -DSZF_PACKAGE_NAME:STRING=${SZF_PACKAGE_NAME}
+ -DZFP_TGZ_NAME:STRING=${ZFP_TGZ_NAME}
+ -DZFP_PACKAGE_NAME:STRING=${ZFP_PACKAGE_NAME}
+ )
+ elseif (${compress_type} MATCHES "TGZ")
+ EXTERNALPROJECT_ADD (PLUGIN
+ URL ${PLUGIN_URL}
+ URL_MD5 ""
+ LIST_SEPARATOR |
+ INSTALL_COMMAND ""
+ CMAKE_ARGS
+ -DUSE_SHARED_LIBS:BOOL=ON
+ -DBUILD_SHARED_LIBS:BOOL=ON
+ -DH5PL_ALLOW_EXTERNAL_SUPPORT:STRING=${HDF5_ALLOW_EXTERNAL_SUPPORT}
+ -DBUILD_TESTING:STRING=OFF
+ -DBUILD_EXAMPLES:STRING=OFF
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
+ -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+ -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
+ -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
+ -DCMAKE_PDB_OUTPUT_DIRECTORY:PATH=${CMAKE_PDB_OUTPUT_DIRECTORY}
+ -DDISABLE_PLUGIN_ENCODER:BOOL=OFF
+ -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
+ -DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
+ # the hdf5 settings
+ -DHDF5_PACKAGE_NAME:STRING=hdf5
+ -DHDF5_HDF5_HEADER:STRING=h5pubconf.h
+ -DHDF5_LINK_LIBS:STRING=$<TARGET_LINKER_FILE:${HDF5_LIBSH_TARGET}>
+ -DHDF5_INCLUDE_DIR:PATH=${HDF5_SRC_DIR}|${HDF5_SRC_BINARY_DIR}
+ -DPL_PACKAGE_NAME:STRING=${PLUGIN_PACKAGE_NAME}
+ -DH5PL_CPACK_ENABLE:BOOL=ON
+ -DHDF5_DIR:STRING=${CMAKE_CURRENT_BINARY_DIR}
+ -DTGZPATH:PATH=${TGZPATH}
+ # the filters
+ -DBSHUF_TGZ_NAME:STRING=${BSHUF_TGZ_NAME}
+ -DBSHUF_PACKAGE_NAME:STRING=${BSHUF_PACKAGE_NAME}
+ -DBLOSC_TGZ_NAME:STRING=${BLOSC_TGZ_NAME}
+ -DBLOSC_PACKAGE_NAME:STRING=${BLOSC_PACKAGE_NAME}
+ -DZLIB_TGZ_NAME:STRING=${ZLIB_TGZ_NAME}
+ -DZLIB_PACKAGE_NAME:STRING=${ZLIB_PACKAGE_NAME}
+ -DBZ2_TGZ_NAME:STRING=${BZ2_TGZ_NAME}
+ -DBZ2_PACKAGE_NAME:STRING=${BZ2_PACKAGE_NAME}
+ #-DFPZIP_TGZ_NAME:STRING=${FPZIP_TGZ_NAME}
+ #-DFPZIP_PACKAGE_NAME:STRING=${FPZIP_PACKAGE_NAME}
+ -DJPEG_TGZ_NAME:STRING=${JPEG_TGZ_NAME}
+ -DJPEG_PACKAGE_NAME:STRING=${JPEG_PACKAGE_NAME}
+ -DLZ4_TGZ_NAME:STRING=${LZ4_TGZ_NAME}
+ -DLZ4_PACKAGE_NAME:STRING=${LZ4_PACKAGE_NAME}
+ -DLZF_TGZ_NAME:STRING=${LZF_TGZ_NAME}
+ -DLZF_PACKAGE_NAME:STRING=${LZF_PACKAGE_NAME}
+ -DSZF_TGZ_NAME:STRING=${SZF_TGZ_NAME}
+ -DSZF_PACKAGE_NAME:STRING=${SZF_PACKAGE_NAME}
+ -DZFP_TGZ_NAME:STRING=${ZFP_TGZ_NAME}
+ -DZFP_PACKAGE_NAME:STRING=${ZFP_PACKAGE_NAME}
+ )
+ endif ()
+ externalproject_get_property (PLUGIN BINARY_DIR SOURCE_DIR)
+ set (PLUGIN_BINARY_DIR "${BINARY_DIR}")
+
+# include (${BINARY_DIR}/PLUGIN-targets.cmake)
+ set (PLUGIN_LIBRARY "PLUGIN")
+ set (PLUGIN_FOUND 1)
+endmacro ()
+
+#-------------------------------------------------------------------------------
+macro (FILTER_OPTION plname)
+ string(TOLOWER ${plname} PLUGIN_NAME)
+ option (ENABLE_${plname} "Enable Library Building for ${plname} plugin" ON)
+ if (ENABLE_${plname})
+ option (HDF_${plname}_USE_EXTERNAL "Use External Library Building for ${PLUGIN_NAME} plugin" 0)
+ if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ set (HDF_${plname}_USE_EXTERNAL 1 CACHE BOOL "Use External Library Building for ${PLUGIN_NAME} plugin" FORCE)
+ if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT")
+ set (HDF_${plname}_URL ${HDF_${plname}_GIT_URL})
+ set (HDF_${plname}_BRANCH ${HDF_${plname}_GIT_BRANCH})
+ elseif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
+ if (NOT TGZPATH)
+ set (TGZPATH ${H5PL_SOURCE_DIR})
+ endif ()
+ set (HDF_${plname}_URL ${TGZPATH}/${HDF_${plname}_TGZ_NAME})
+ endif ()
+ endif ()
+ add_subdirectory (${plname})
+ set_global_variable (H5PL_LIBRARIES_TO_EXPORT "${H5PL_LIBRARIES_TO_EXPORT};${H5${plname}_LIBRARIES_TO_EXPORT}")
+ endif ()
+endmacro ()
+
+#-------------------------------------------------------------------------------
+macro (PACKAGE_PLUGIN_LIBRARY compress_type)
+ if (${compress_type} MATCHES "GIT" OR ${compress_type} MATCHES "TGZ")
+ message (STATUS "Filter PLUGIN is to be packaged")
+ endif ()
+endmacro ()
diff --git a/config/cmake/HDF5_Examples_options.cmake b/config/cmake/HDF5_Examples_options.cmake
index b108b5b..d8cc40b 100644
--- a/config/cmake/HDF5_Examples_options.cmake
+++ b/config/cmake/HDF5_Examples_options.cmake
@@ -17,6 +17,7 @@
#### HDF_BUILD_C:BOOL=ON ###
#### HDF_BUILD_CXX:BOOL=OFF ###
#### HDF_BUILD_FORTRAN:BOOL=OFF ###
+#### HDF_BUILD_FILTERS:BOOL=OFF ###
#### BUILD_TESTING:BOOL=OFF ###
#### HDF_ENABLE_PARALLEL:BOOL=OFF ###
#### HDF_ENABLE_THREADSAFE:BOOL=OFF ###
diff --git a/config/cmake/PkgInfo.in b/config/cmake/PkgInfo.in
index e530f88..ae54035 100644
--- a/config/cmake/PkgInfo.in
+++ b/config/cmake/PkgInfo.in
@@ -1 +1 @@
-FMWK???? \ No newline at end of file
+FMWK????
diff --git a/config/cmake/README.txt.cmake.in b/config/cmake/README.txt.cmake.in
index fe627da..5465262 100644
--- a/config/cmake/README.txt.cmake.in
+++ b/config/cmake/README.txt.cmake.in
@@ -16,6 +16,18 @@ The contents of this directory are:
README.txt - This file
@HDF5_PACKAGE_NAME@-@HDF5_PACKAGE_VERSION@-@BINARY_SYSTEM_NAME@.@BINARY_INSTALL_ENDING@ - HDF5 Install Package
+This binary was built with the ZLIB and SZIP/Libaec external libraries and are
+included for convenience. Libaec is an unrestricted open-source replacement for SZIP
+(version 1.0.4, Encoder ENABLED).
+
+The official ZLIB and SZIP/Libaec pages are at:
+
+ ZLIB: https://git.savannah.gnu.org/cgit/gzip.git/
+ https://git.savannah.gnu.org/cgit/gzip.git/tree/COPYING
+ SZIP/Libaec: https://gitlab.dkrz.de/k202009/libaec
+ https://gitlab.dkrz.de/k202009/libaec/-/blob/master/Copyright.txt
+
+
Installation
===========================================================================
1. Execute @HDF5_PACKAGE_NAME@-@HDF5_PACKAGE_VERSION@-@BINARY_SYSTEM_NAME@.@BINARY_INSTALL_ENDING@
diff --git a/config/cmake/cacheinit.cmake b/config/cmake/cacheinit.cmake
index 64e8dcc..71c8b4a 100644
--- a/config/cmake/cacheinit.cmake
+++ b/config/cmake/cacheinit.cmake
@@ -40,11 +40,12 @@ set (HDF5_ENABLE_ALL_WARNINGS ON CACHE BOOL "Enable all warnings" FORCE)
set (HDF_TEST_EXPRESS "2" CACHE STRING "Control testing framework (0-3)" FORCE)
+set (HDF5_MINGW_STATIC_GCC_LIBS ON CACHE BOOL "Statically link libgcc/libstdc++" FORCE)
+
set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO GIT TGZ)" FORCE)
set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT TGZ)
set (ZLIB_TGZ_NAME "ZLib.tar.gz" CACHE STRING "Use ZLib from compressed file" FORCE)
-
set (SZIP_TGZ_NAME "SZip.tar.gz" CACHE STRING "Use SZip from compressed file" FORCE)
set (SZAEC_TGZ_NAME "LIBAEC.tar.gz" CACHE STRING "Use SZip AEC from compressed file" FORCE)
set (USE_LIBAEC ON CACHE BOOL "Use libaec szip replacement" FORCE)
@@ -52,3 +53,128 @@ set (USE_LIBAEC ON CACHE BOOL "Use libaec szip replacement" FORCE)
set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE)
set (LIBAEC_PACKAGE_NAME "libaec" CACHE STRING "Name of AEC SZIP package" FORCE)
set (SZIP_PACKAGE_NAME "szip" CACHE STRING "Name of SZIP package" FORCE)
+
+#######################
+# filter plugin options
+#######################
+set (PLUGIN_TGZ_NAME "hdf5_plugins.tar.gz" CACHE STRING "Use PLUGINS from compressed file" FORCE)
+
+set (PLUGIN_PACKAGE_NAME "pl" CACHE STRING "Name of PLUGIN package" FORCE)
+
+############
+# bitshuffle
+###########
+
+set (BSHUF_GIT_URL "https://git@bitbucket.hdfgroup.org/scm/test/bitshuffle.git" CACHE STRING "Use BSHUF from HDF repository" FORCE)
+set (BSHUF_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (BSHUF_TGZ_NAME "bitshuffle.tar.gz" CACHE STRING "Use BSHUF from compressed file" FORCE)
+
+set (BSHUF_PACKAGE_NAME "bshuf" CACHE STRING "Name of BSHUF package" FORCE)
+
+#######
+# blosc
+#######
+
+set (BLOSC_GIT_URL "https://github.com/Blosc/c-blosc.git" CACHE STRING "Use BLOSC from Github" FORCE)
+set (BLOSC_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (BLOSC_TGZ_NAME "c-blosc.tar.gz" CACHE STRING "Use BLOSC from compressed file" FORCE)
+
+set (BLOSC_PACKAGE_NAME "blosc" CACHE STRING "Name of BLOSC package" FORCE)
+
+set (ZLIB_GIT_URL "https://git@bitbucket.hdfgroup.org/scm/test/zlib.git" CACHE STRING "Use ZLIB from HDF repo" FORCE)
+set (ZLIB_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (ZLIB_TGZ_NAME "ZLib.tar.gz" CACHE STRING "Use ZLib from compressed file" FORCE)
+
+set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE)
+
+#######
+# bzip2
+######
+#
+set (BZ2_GIT_URL "https://git@bitbucket.hdfgroup.org/scm/test/bzip2.git" CACHE STRING "Use BZ2 from HDF repository" FORCE)
+set (BZ2_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (BZ2_TGZ_NAME "BZ2.tar.gz" CACHE STRING "Use BZ2 from compressed file" FORCE)
+
+set (BZ2_PACKAGE_NAME "bz2" CACHE STRING "Name of BZ2 package" FORCE)
+
+#######
+# fpzip
+#######
+
+set (FPZIP_GIT_URL "https://https://github.com/LLNL/fpzip" CACHE STRING "Use FPZIP from github repository" FORCE)
+set (FPZIP_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (FPZIP_TGZ_NAME "fpzip.tar.gz" CACHE STRING "Use FPZIP from compressed file" FORCE)
+
+set (FPZIP_PACKAGE_NAME "fpzip" CACHE STRING "Name of FPZIP package" FORCE)
+
+######
+# jpeg
+######
+
+set (JPEG_GIT_URL "https://git@bitbucket.hdfgroup.org/scm/test/jpeg.git" CACHE STRING "Use JPEG from HDF repository" FORCE)
+set (JPEG_GIT_BRANCH "jpeg9c" CACHE STRING "" FORCE)
+
+#set (JPEG_TGZ_NAME "JPEG9c.tar.gz" CACHE STRING "Use JPEG from compressed file" FORCE)
+set (JPEG_TGZ_NAME "JPEG.tar.gz" CACHE STRING "Use JPEG from compressed file" FORCE)
+
+set (JPEG_PACKAGE_NAME "jpeg" CACHE STRING "Name of JPEG package" FORCE)
+
+######
+# lz4
+######
+
+set (BUILD_LZ4_LIBRARY_SOURCE ON CACHE BOOL "build the lz4 library within the plugin" FORCE)
+
+set (LZ4_GIT_URL "https://git@bitbucket.hdfgroup.org/scm/test/lz4.git" CACHE STRING "Use LZ4 from HDF repository" FORCE)
+set (LZ4_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (LZ4_TGZ_NAME "lz4.tar.gz" CACHE STRING "Use LZ4 from compressed file" FORCE)
+
+set (LZ4_PACKAGE_NAME "lz4" CACHE STRING "Name of LZ4 package" FORCE)
+
+######
+# lzf
+######
+
+set (LZF_GIT_URL "https://git@bitbucket.hdfgroup.org/scm/test/lzf.git" CACHE STRING "Use LZF from HDF repository" FORCE)
+set (LZF_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (LZF_TGZ_NAME "lzf.tar.gz" CACHE STRING "Use LZF from compressed file" FORCE)
+
+set (LZF_PACKAGE_NAME "lzf" CACHE STRING "Name of LZF package" FORCE)
+
+########
+# mafisc
+########
+
+#set (BUILD_MAFISC_LIBRARY_SOURCE OFF CACHE BOOL "build the mafisc library within the plugin" FORCE)
+
+#set (MAFISC_PACKAGE_NAME "mafisc" CACHE STRING "Name of MAFISC package" FORCE)
+
+######
+# szf
+######
+
+set (SZF_GIT_URL "https://github.com/disheng222/SZ" CACHE STRING "Use SZ from github repository" FORCE)
+set (SZF_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (SZF_TGZ_NAME "szf.tar.gz" CACHE STRING "Use SZ from compressed file" FORCE)
+
+set (SZF_PACKAGE_NAME "szf" CACHE STRING "Name of SZ package" FORCE)
+
+######
+# zfp
+######
+
+set (ZFP_GIT_URL "https://github.com/LLNL/zfp.git" CACHE STRING "Use ZFP from Github" FORCE)
+set (ZFP_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (ZFP_TGZ_NAME "zfp.tar.gz" CACHE STRING "Use ZFP from compressed file" FORCE)
+
+set (ZFP_PACKAGE_NAME "zfp" CACHE STRING "Name of ZFP package" FORCE)
+
diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in
index 15ab88a..977fd70 100644
--- a/config/cmake/hdf5-config.cmake.in
+++ b/config/cmake/hdf5-config.cmake.in
@@ -38,6 +38,7 @@ set (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@)
set (${HDF5_PACKAGE_NAME}_BUILD_TOOLS @HDF5_BUILD_TOOLS@)
set (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@)
set (${HDF5_PACKAGE_NAME}_ENABLE_THREADSAFE @HDF5_ENABLE_THREADSAFE@)
+set (${HDF5_PACKAGE_NAME}_ENABLE_PLUGIN_SUPPORT @HDF5_ENABLE_PLUGIN_SUPPORT@)
set (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@)
set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT @HDF5_ENABLE_SZIP_SUPPORT@)
set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@)
diff --git a/config/cmake_ext_mod/ConfigureChecks.cmake b/config/cmake_ext_mod/ConfigureChecks.cmake
index 93b977e..55015fb 100644
--- a/config/cmake_ext_mod/ConfigureChecks.cmake
+++ b/config/cmake_ext_mod/ConfigureChecks.cmake
@@ -69,6 +69,7 @@ if (MINGW)
set (WINDOWS 1) # MinGW tries to imitate Windows
set (CMAKE_REQUIRED_FLAGS "-DWIN32_LEAN_AND_MEAN=1 -DNOGDI=1")
set (${HDF_PREFIX}_HAVE_WINSOCK2_H 1)
+ set (__USE_MINGW_ANSI_STDIO 1)
endif ()
if (WIN32 AND NOT MINGW)
diff --git a/config/cmake_ext_mod/HDFMacros.cmake b/config/cmake_ext_mod/HDFMacros.cmake
index 5740740..8ca8159 100644
--- a/config/cmake_ext_mod/HDFMacros.cmake
+++ b/config/cmake_ext_mod/HDFMacros.cmake
@@ -143,8 +143,8 @@ macro (HDF_SET_LIB_OPTIONS libtarget libname libtype)
endif ()
endif ()
- #----- Use MSVC Naming conventions for Shared Libraries
- if (MINGW AND ${libtype} MATCHES "SHARED")
+ option (HDF5_MSVC_NAMING_CONVENTION "Use MSVC Naming conventions for Shared Libraries" OFF)
+ if (HDF5_MSVC_NAMING_CONVENTION AND MINGW AND ${libtype} MATCHES "SHARED")
set_target_properties (${libtarget} PROPERTIES
IMPORT_SUFFIX ".lib"
IMPORT_PREFIX ""
@@ -343,7 +343,7 @@ macro (HDF_DIR_PATHS package_prefix)
set (${package_prefix}_INSTALL_INCLUDE_DIR include)
endif ()
if (NOT ${package_prefix}_INSTALL_DATA_DIR)
- if (NOT WIN32)
+ if (NOT MSVC)
if (APPLE)
if (${package_prefix}_BUILD_FRAMEWORKS)
set (${package_prefix}_INSTALL_EXTRA_DIR ../SharedSupport)
@@ -353,12 +353,13 @@ macro (HDF_DIR_PATHS package_prefix)
set (${package_prefix}_INSTALL_FWRK_DIR ${CMAKE_INSTALL_FRAMEWORK_PREFIX})
endif ()
set (${package_prefix}_INSTALL_DATA_DIR share)
- set (${package_prefix}_INSTALL_CMAKE_DIR share/cmake)
else ()
set (${package_prefix}_INSTALL_DATA_DIR ".")
- set (${package_prefix}_INSTALL_CMAKE_DIR cmake)
endif ()
endif ()
+ if (NOT ${package_prefix}_INSTALL_CMAKE_DIR)
+ set (${package_prefix}_INSTALL_CMAKE_DIR share/cmake)
+ endif ()
# Always use full RPATH, i.e. don't skip the full RPATH for the build tree
set (CMAKE_SKIP_BUILD_RPATH FALSE)
@@ -427,6 +428,19 @@ macro (HDF_DIR_PATHS package_prefix)
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
endif ()
endif ()
+
+#-----------------------------------------------------------------------------
+# Setup pre-3.14 FetchContent
+#-----------------------------------------------------------------------------
+ if(${CMAKE_VERSION} VERSION_LESS 3.14)
+ macro(FetchContent_MakeAvailable NAME)
+ FetchContent_GetProperties(${NAME})
+ if(NOT ${NAME}_POPULATED)
+ FetchContent_Populate(${NAME})
+ add_subdirectory(${${NAME}_SOURCE_DIR} ${${NAME}_BINARY_DIR})
+ endif()
+ endmacro()
+ endif()
endmacro ()
macro (ADD_H5_FLAGS h5_flag_var infile)
diff --git a/config/cmake_ext_mod/HDFTests.c b/config/cmake_ext_mod/HDFTests.c
index 31a568a..bed9444 100644
--- a/config/cmake_ext_mod/HDFTests.c
+++ b/config/cmake_ext_mod/HDFTests.c
@@ -178,7 +178,7 @@ int DebugReport(int reportType, char* message, int* returnValue)
int main(void)
{
- char *llwidthArgs[] = { "I64", "l64", "l", "L", "q", "ll", NULL };
+ char *llwidthArgs[] = { "I64", "l64", "ll", "l", "L", "q", NULL };
char *s = malloc(128);
char **currentArg = NULL;
LL_TYPE x = (LL_TYPE)1048576 * (LL_TYPE)1048576;
diff --git a/config/cmake_ext_mod/grepTest.cmake b/config/cmake_ext_mod/grepTest.cmake
index b011ae8..758b62b 100644
--- a/config/cmake_ext_mod/grepTest.cmake
+++ b/config/cmake_ext_mod/grepTest.cmake
@@ -46,7 +46,7 @@ endif ()
message (STATUS "COMMAND: ${TEST_EMULATOR} ${TEST_PROGRAM} ${TEST_ARGS}")
if (TEST_LIBRARY_DIRECTORY)
- if (WIN32 OR MINGW)
+ if (WIN32)
set (ENV{PATH} "$ENV{PATH};${TEST_LIBRARY_DIRECTORY}")
else ()
set (ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}:${TEST_LIBRARY_DIRECTORY}")
@@ -105,7 +105,7 @@ if (TEST_ERRREF)
file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
list (LENGTH TEST_STREAM test_len)
if (test_len GREATER 0)
- if (WIN32 OR MINGW)
+ if (WIN32)
configure_file(${TEST_FOLDER}/${TEST_REFERENCE} ${TEST_FOLDER}/${TEST_REFERENCE}.tmp NEWLINE_STYLE CRLF)
if (EXISTS "${TEST_FOLDER}/${TEST_REFERENCE}.tmp")
file(RENAME ${TEST_FOLDER}/${TEST_REFERENCE}.tmp ${TEST_FOLDER}/${TEST_REFERENCE})
diff --git a/config/cmake_ext_mod/runTest.cmake b/config/cmake_ext_mod/runTest.cmake
index 2b8b6b0..baf15c0 100644
--- a/config/cmake_ext_mod/runTest.cmake
+++ b/config/cmake_ext_mod/runTest.cmake
@@ -38,7 +38,7 @@ endif ()
message (STATUS "COMMAND: ${TEST_EMULATOR} ${TEST_PROGRAM} ${TEST_ARGS}")
if (TEST_LIBRARY_DIRECTORY)
- if (WIN32 OR MINGW)
+ if (WIN32)
set (ENV{PATH} "$ENV{PATH};${TEST_LIBRARY_DIRECTORY}")
else ()
set (ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}:${TEST_LIBRARY_DIRECTORY}")
@@ -212,7 +212,7 @@ if (NOT TEST_SKIP_COMPARE)
file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
list (LENGTH TEST_STREAM test_len)
if (test_len GREATER 0)
- if (WIN32 OR MINGW)
+ if (WIN32)
configure_file(${TEST_FOLDER}/${TEST_REFERENCE} ${TEST_FOLDER}/${TEST_REFERENCE}.tmp NEWLINE_STYLE CRLF)
if (EXISTS "${TEST_FOLDER}/${TEST_REFERENCE}.tmp")
file(RENAME ${TEST_FOLDER}/${TEST_REFERENCE}.tmp ${TEST_FOLDER}/${TEST_REFERENCE})
@@ -283,7 +283,7 @@ if (NOT TEST_SKIP_COMPARE)
file (READ ${TEST_FOLDER}/${TEST_ERRREF} TEST_STREAM)
list (LENGTH TEST_STREAM test_len)
if (test_len GREATER 0)
- if (WIN32 OR MINGW)
+ if (WIN32)
configure_file(${TEST_FOLDER}/${TEST_ERRREF} ${TEST_FOLDER}/${TEST_ERRREF}.tmp NEWLINE_STYLE CRLF)
if (EXISTS "${TEST_FOLDER}/${TEST_ERRREF}.tmp")
file(RENAME ${TEST_FOLDER}/${TEST_ERRREF}.tmp ${TEST_FOLDER}/${TEST_ERRREF})
diff --git a/config/sanitizer/formatting.cmake b/config/sanitizer/formatting.cmake
index 677a69a..5aaa2a6 100644
--- a/config/sanitizer/formatting.cmake
+++ b/config/sanitizer/formatting.cmake
@@ -90,55 +90,3 @@ function(clang_format TARGET_NAME)
endif()
endfunction()
-#
-# cmake-format
-#
-find_program(CMAKE_FORMAT_EXE "cmake-format")
-mark_as_advanced(FORCE CMAKE_FORMAT_EXE)
-if(CMAKE_FORMAT_EXE)
- message(STATUS "cmake-format found: ${CMAKE_FORMAT_EXE}")
-else()
- message(STATUS "cmake-format not found!")
-endif()
-
-# When called, this function will call 'cmake-format' program on all listed
-# files (if both the program and the files exist and are found)
-# ~~~
-# Required:
-# TARGET_NAME - The name of the target to create.
-#
-# Optional:
-# ARGN - Any arguments passed in will be considered as 'files' to perform the
-# formatting on. Any items that are not files will be ignored. Both relative and
-# absolute paths are accepted.
-# ~~~
-function(cmake_format TARGET_NAME)
- if(CMAKE_FORMAT_EXE)
- set(FORMAT_FILES)
- # Determine files that exist
- foreach(iter IN LISTS ARGN)
- if(EXISTS ${iter})
- set(FORMAT_FILES ${FORMAT_FILES} ${iter})
- elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${iter})
- set(FORMAT_FILES ${FORMAT_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/${iter})
- endif()
- endforeach()
-
- # Generate target
- if(FORMAT_FILES)
- if(TARGET ${TARGET_NAME})
- message(
- ERROR
- "Cannot create cmake-format target '${TARGET_NAME}', already exists.")
- else()
- add_custom_target(${TARGET_NAME} COMMAND ${CMAKE_FORMAT_EXE} -i
- ${FORMAT_FILES})
-
- if(NOT TARGET cmake-format)
- add_custom_target(cmake-format)
- endif()
- add_dependencies(cmake-format ${TARGET_NAME})
- endif()
- endif()
- endif()
-endfunction()
diff --git a/config/sanitizer/tools.cmake b/config/sanitizer/tools.cmake
index 2f73cce..242e33f 100644
--- a/config/sanitizer/tools.cmake
+++ b/config/sanitizer/tools.cmake
@@ -111,4 +111,4 @@ else()
set(CMAKE_CXX_CPPCHECK
""
CACHE STRING "" FORCE) # delete it
-endif() \ No newline at end of file
+endif()