summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2020-12-15 00:15:39 (GMT)
committerGitHub <noreply@github.com>2020-12-15 00:15:39 (GMT)
commitd673ee0cdd826100f6c914ea0851d742699ed740 (patch)
treed0ff5f967748b525275c3f37526d33aab87c702c
parent629fcdb3d05edeab2f72838e595b5cae1c858c97 (diff)
downloadhdf5-d673ee0cdd826100f6c914ea0851d742699ed740.zip
hdf5-d673ee0cdd826100f6c914ea0851d742699ed740.tar.gz
hdf5-d673ee0cdd826100f6c914ea0851d742699ed740.tar.bz2
OESS-98 Update plugin build option - HDF5 1 12 (#173)
* merge updates from develop * remove extension on command * Run autogen before chkmanifest * Update release text files and whitespace cleanup * Update list * OESS-98 Update plugin build option
-rw-r--r--CMakeFilters.cmake2
-rw-r--r--CMakeInstallation.cmake17
-rw-r--r--CMakeLists.txt31
-rw-r--r--MANIFEST1
-rw-r--r--config/cmake/HDF5PluginCache.cmake28
-rw-r--r--config/cmake/HDF5PluginMacros.cmake162
-rw-r--r--config/cmake_ext_mod/HDFLibMacros.cmake15
-rw-r--r--config/cmake_ext_mod/HDFMacros.cmake13
-rw-r--r--fortran/src/CMakeLists.txt2
-rw-r--r--hl/c++/src/CMakeLists.txt1
-rw-r--r--hl/fortran/src/CMakeLists.txt48
-rw-r--r--release_docs/RELEASE.txt64
-rw-r--r--src/CMakeLists.txt3
13 files changed, 209 insertions, 178 deletions
diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake
index dda5510..9a0719f 100644
--- a/CMakeFilters.cmake
+++ b/CMakeFilters.cmake
@@ -12,7 +12,7 @@
option (USE_LIBAEC "Use AEC library as SZip Filter" OFF)
include (ExternalProject)
-#include(FetchContent)
+include (FetchContent)
#option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" "NO")
set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO GIT TGZ)")
diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake
index ccd4fbc..2626264 100644
--- a/CMakeInstallation.cmake
+++ b/CMakeInstallation.cmake
@@ -107,10 +107,6 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
VERSION ${HDF5_PACKAGE_VERSION}
COMPATIBILITY SameMinorVersion
)
- #configure_file (
- # ${HDF_RESOURCES_DIR}/hdf5-config-version.cmake.in
- # ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake @ONLY
- #)
install (
FILES ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}/hdf5
@@ -249,19 +245,6 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
endif ()
endif ()
-if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
- if (CMAKE_HOST_UNIX)
- set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/HDF_Group/${HDF5_PACKAGE_NAME}/${HDF5_PACKAGE_VERSION}"
- CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
- else ()
- GetDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES)
- set (CMAKE_INSTALL_PREFIX
- "${CMAKE_GENERIC_PROGRAM_FILES}/HDF_Group/${HDF5_PACKAGE_NAME}/${HDF5_PACKAGE_VERSION}"
- CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
- set (CMAKE_GENERIC_PROGRAM_FILES)
- endif ()
-endif ()
-
#-----------------------------------------------------------------------------
# Set the cpack variables
#-----------------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 56e97d2..afa034e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -844,17 +844,6 @@ endif ()
#-----------------------------------------------------------------------------
add_subdirectory (src)
-#-----------------------------------------------------------------------------
-# Include filter plugins
-#-----------------------------------------------------------------------------
-include (CMakePlugins.cmake)
-
-if (HDF5_PACKAGE_EXTLIBS AND NOT HDF5_NO_PACKAGES)
- if (HDF5_ENABLE_PLUGIN_SUPPORT AND PLUGIN_FOUND)
- PACKAGE_PLUGIN_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT})
- endif ()
-endif ()
-
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
if (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
if (NOT ONLY_SHARED_LIBS)
@@ -872,11 +861,6 @@ if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF5_ALLOW_EXTERNAL_SUPPORT MAT
add_dependencies (${HDF5_LIBSH_TARGET} SZIP)
endif ()
endif ()
- if (PLUGIN_FOUND AND PLUGIN_USE_EXTERNAL)
- if (BUILD_SHARED_LIBS)
- add_dependencies (PLUGIN ${HDF5_LIBSH_TARGET})
- endif ()
- endif ()
endif ()
#-----------------------------------------------------------------------------
@@ -954,6 +938,21 @@ if (BUILD_TESTING)
endif ()
#-----------------------------------------------------------------------------
+# Include filter plugins
+#-----------------------------------------------------------------------------
+include (CMakePlugins.cmake)
+
+if (HDF5_PACKAGE_EXTLIBS AND NOT HDF5_NO_PACKAGES)
+ if (HDF5_ENABLE_PLUGIN_SUPPORT AND PLUGIN_FOUND)
+ PACKAGE_PLUGIN_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT})
+# option (HDF5_TEST_PLUGIN "Execute plugin tests" ON)
+# mark_as_advanced (HDF5_TEST_PLUGIN)
+
+# TEST_PLUGIN_LIBRARY ()
+ endif ()
+endif ()
+
+#-----------------------------------------------------------------------------
# Option to build HDF5 Utilities
#-----------------------------------------------------------------------------
if (EXISTS "${HDF5_SOURCE_DIR}/utils" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/utils")
diff --git a/MANIFEST b/MANIFEST
index 3a29ec9..e12b66e 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3488,6 +3488,7 @@
./config/cmake/HDFFortranCompilerFlags.cmake
./config/cmake/HDF5Macros.cmake
./config/cmake/HDF5PluginMacros.cmake
+./config/cmake/HDF5PluginCache.cmake
./config/cmake/HDF5UseFortran.cmake
./config/cmake/jrunTest.cmake
./config/cmake/jvolTest.cmake
diff --git a/config/cmake/HDF5PluginCache.cmake b/config/cmake/HDF5PluginCache.cmake
new file mode 100644
index 0000000..7f3aea9
--- /dev/null
+++ b/config/cmake/HDF5PluginCache.cmake
@@ -0,0 +1,28 @@
+# This is the CMakeCache file.
+
+########################
+# EXTERNAL cache entries
+########################
+
+# examples are the tests for plugins
+set (H5PL_BUILD_TESTING ON CACHE BOOL "Enable h5pl testing" FORCE)
+set (BUILD_EXAMPLES ON CACHE BOOL "Build h5pl Examples" FORCE)
+
+set (HDF5_PACKAGE_NAME "hdf5" CACHE STRING "Name of HDF5 package" FORCE)
+set (HDF5_HDF5_HEADER "h5pubconf.h" CACHE STRING "Name of HDF5 header" FORCE)
+set (HDF5_LINK_TARGET ${HDF5_LIBSH_TARGET} CACHE STRING "hdf5 target" FORCE)
+set (HDF5_LINK_LIBS $<TARGET_LINKER_FILE:${HDF5_LIBSH_TARGET}> CACHE STRING "hdf5 shared link library" FORCE)
+#set (HDF5_INCLUDE_DIR $<TARGET_PROPERTY:${HDF5_LIBSH_TARGET},INCLUDE_DIRECTORIES> CACHE PATH "hdf5 include dirs" FORCE)
+set (HDF5_INCLUDE_DIR "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}" CACHE PATH "hdf5 include dirs" FORCE)
+set (HDF5_INCLUDE_DIRS "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}" CACHE PATH "hdf5 include dirs" FORCE)
+set (HDF5_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE STRING "hdf5 build folder" FORCE)
+
+set (H5PL_ALLOW_EXTERNAL_SUPPORT "${HDF5_ALLOW_EXTERNAL_SUPPORT}" CACHE STRING "Allow External Library Building (NO GIT TGZ)" FORCE)
+
+set (H5PL_GIT_URL "https://git@bitbucket.hdfgroup.org/scm/test/h5plugin.git" CACHE STRING "Use plugins from HDF repository" FORCE)
+set (H5PL_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (H5PL_TGZ_NAME "${PLUGIN_TGZ_NAME}" CACHE STRING "Use plugins from compressed file" FORCE)
+
+set (PL_PACKAGE_NAME "${PLUGIN_PACKAGE_NAME}" CACHE STRING "Name of plugins package" FORCE)
+set (H5PL_CPACK_ENABLE OFF CACHE BOOL "Enable the CPACK include and components" FORCE)
diff --git a/config/cmake/HDF5PluginMacros.cmake b/config/cmake/HDF5PluginMacros.cmake
index 46d3979..3c0e12c 100644
--- a/config/cmake/HDF5PluginMacros.cmake
+++ b/config/cmake/HDF5PluginMacros.cmake
@@ -3,114 +3,72 @@
#-------------------------------------------------------------------------------
macro (EXTERNAL_PLUGIN_LIBRARY compress_type)
if (${compress_type} MATCHES "GIT")
- EXTERNALPROJECT_ADD (PLUGIN
+ FetchContent_Declare (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
+ FetchContent_Declare (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}
+ URL_HASH ""
)
endif ()
- externalproject_get_property (PLUGIN BINARY_DIR SOURCE_DIR)
- set (PLUGIN_BINARY_DIR "${BINARY_DIR}")
-
-# include (${BINARY_DIR}/PLUGIN-targets.cmake)
+ FetchContent_GetProperties(PLUGIN)
+ message (STATUS "HDF5_INCLUDE_DIR=${HDF5_INCLUDE_DIR}")
+ if(NOT PLUGIN_POPULATED)
+ FetchContent_Populate(PLUGIN)
+ include (${HDF_RESOURCES_DIR}/HDF5PluginCache.cmake)
+ set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
+ add_subdirectory(${plugin_SOURCE_DIR} ${plugin_BINARY_DIR})
+ if (ENABLE_BLOSC)
+ add_dependencies (h5blosc ${HDF5_LIBSH_TARGET})
+ add_dependencies (h5ex_d_blosc ${HDF5_LIBSH_TARGET})
+ target_include_directories (h5ex_d_blosc PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}")
+ endif ()
+ if (ENABLE_BSHUF)
+ add_dependencies (h5bshuf ${HDF5_LIBSH_TARGET})
+ add_dependencies (h5ex_d_bshuf ${HDF5_LIBSH_TARGET})
+ target_include_directories (h5ex_d_bshuf PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}")
+ endif ()
+ if (ENABLE_BZIP2)
+ add_dependencies (h5bz2 ${HDF5_LIBSH_TARGET})
+ add_dependencies (h5ex_d_bzip2 ${HDF5_LIBSH_TARGET})
+ target_include_directories (h5ex_d_bzip2 PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}")
+ endif ()
+ if (ENABLE_JPEG)
+ add_dependencies (h5jpeg ${HDF5_LIBSH_TARGET})
+ add_dependencies (h5ex_d_jpeg ${HDF5_LIBSH_TARGET})
+ target_include_directories (h5ex_d_jpeg PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}")
+ endif ()
+ if (ENABLE_LZ4)
+ add_dependencies (h5lz4 ${HDF5_LIBSH_TARGET})
+ add_dependencies (h5ex_d_lz4 ${HDF5_LIBSH_TARGET})
+ target_include_directories (h5ex_d_lz4 PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}")
+ endif ()
+ if (ENABLE_LZF)
+ add_dependencies (h5lzf ${HDF5_LIBSH_TARGET})
+ add_dependencies (h5ex_d_lzf ${HDF5_LIBSH_TARGET})
+ target_include_directories (h5ex_d_lzf PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}")
+ endif ()
+ if (ENABLE_MAFISC)
+ add_dependencies (h5mafisc ${HDF5_LIBSH_TARGET})
+ add_dependencies (h5ex_d_mafisc ${HDF5_LIBSH_TARGET})
+ target_include_directories (h5ex_d_mafisc PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}")
+ endif ()
+ if (ENABLE_SZF)
+ add_dependencies (h5szf ${HDF5_LIBSH_TARGET})
+ add_dependencies (h5ex_d_szf ${HDF5_LIBSH_TARGET})
+ target_include_directories (h5ex_d_szf PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}")
+ endif ()
+ if (ENABLE_ZFP)
+ add_dependencies (h5zfp ${HDF5_LIBSH_TARGET})
+ add_dependencies (h5ex_d_zfp ${HDF5_LIBSH_TARGET})
+ target_include_directories (h5ex_d_zfp PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR}")
+ endif ()
+ endif()
+ message (STATUS "HDF5_INCLUDE_DIR=${HDF5_INCLUDE_DIR}")
+ set (PLUGIN_BINARY_DIR "${plugin_BINARY_DIR}")
+ set (PLUGIN_SOURCE_DIR "${plugin_SOURCE_DIR}")
set (PLUGIN_LIBRARY "PLUGIN")
set (PLUGIN_FOUND 1)
endmacro ()
@@ -129,7 +87,7 @@ macro (FILTER_OPTION plname)
elseif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
if (NOT TGZPATH)
set (TGZPATH ${H5PL_SOURCE_DIR})
- endif ()
+ endif ()
set (HDF_${plname}_URL ${TGZPATH}/${HDF_${plname}_TGZ_NAME})
endif ()
endif ()
diff --git a/config/cmake_ext_mod/HDFLibMacros.cmake b/config/cmake_ext_mod/HDFLibMacros.cmake
index 9704fbd..fe633bf 100644
--- a/config/cmake_ext_mod/HDFLibMacros.cmake
+++ b/config/cmake_ext_mod/HDFLibMacros.cmake
@@ -84,10 +84,6 @@ endmacro ()
#-------------------------------------------------------------------------------
macro (EXTERNAL_SZIP_LIBRARY compress_type encoding)
if (${compress_type} MATCHES "GIT")
-# FetchContent_Declare (SZIP
-# GIT_REPOSITORY ${SZIP_URL}
-# GIT_TAG ${SZIP_BRANCH}
-# )
EXTERNALPROJECT_ADD (SZIP
GIT_REPOSITORY ${SZIP_URL}
GIT_TAG ${SZIP_BRANCH}
@@ -108,10 +104,6 @@ macro (EXTERNAL_SZIP_LIBRARY compress_type encoding)
-DPACKAGE_NAMESPACE=${HDF_PACKAGE_NAMESPACE}
)
elseif (${compress_type} MATCHES "TGZ")
-# FetchContent_Declare (SZIP
-# URL ${SZIP_URL}
-# URL_HASH ""
-# )
EXTERNALPROJECT_ADD (SZIP
URL ${SZIP_URL}
URL_MD5 ""
@@ -133,12 +125,7 @@ macro (EXTERNAL_SZIP_LIBRARY compress_type encoding)
)
endif ()
externalproject_get_property (SZIP BINARY_DIR SOURCE_DIR)
-# FetchContent_GetProperties(SZIP)
-# if(NOT SZIP_POPULATED)
-# FetchContent_Populate(SZIP)
-# add_subdirectory(${szip_SOURCE_DIR} ${szip_BINARY_DIR})
-# endif()
-#
+
##include (${BINARY_DIR}/${SZ_PACKAGE_NAME}${HDF_PACKAGE_EXT}-targets.cmake)
# Create imported target szip-static
if (USE_LIBAEC)
diff --git a/config/cmake_ext_mod/HDFMacros.cmake b/config/cmake_ext_mod/HDFMacros.cmake
index 8ca8159..952b766 100644
--- a/config/cmake_ext_mod/HDFMacros.cmake
+++ b/config/cmake_ext_mod/HDFMacros.cmake
@@ -429,6 +429,19 @@ macro (HDF_DIR_PATHS package_prefix)
endif ()
endif ()
+ if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+ if (CMAKE_HOST_UNIX)
+ set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/HDF_Group/${HDF5_PACKAGE_NAME}/${HDF5_PACKAGE_VERSION}"
+ CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
+ else ()
+ GetDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES)
+ set (CMAKE_INSTALL_PREFIX
+ "${CMAKE_GENERIC_PROGRAM_FILES}/HDF_Group/${HDF5_PACKAGE_NAME}/${HDF5_PACKAGE_VERSION}"
+ CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
+ set (CMAKE_GENERIC_PROGRAM_FILES)
+ endif ()
+ endif ()
+
#-----------------------------------------------------------------------------
# Setup pre-3.14 FetchContent
#-----------------------------------------------------------------------------
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
index 20bec6f..ecf34fd 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -563,5 +563,3 @@ if (NOT WIN32 AND NOT MINGW)
COMPONENT fortlibraries
)
endif ()
-
-
diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt
index 2c1a838..77382c2 100644
--- a/hl/c++/src/CMakeLists.txt
+++ b/hl/c++/src/CMakeLists.txt
@@ -133,4 +133,3 @@ if (NOT WIN32 AND NOT MINGW)
COMPONENT hlcpplibraries
)
endif ()
-
diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt
index be0eba5..82b5555 100644
--- a/hl/fortran/src/CMakeLists.txt
+++ b/hl/fortran/src/CMakeLists.txt
@@ -318,3 +318,51 @@ if (HDF5_EXPORTED_TARGETS)
INCLUDES DESTINATION include
)
endif ()
+
+#-----------------------------------------------------------------------------
+# Create pkgconfig files
+#-----------------------------------------------------------------------------
+set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
+set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
+set (_PKG_CONFIG_LIBDIR \${exec_prefix}/lib)
+set (_PKG_CONFIG_INCLUDEDIR \${prefix}/include)
+set (_PKG_CONFIG_LIBNAME "${HDF5_HL_F90_LIB_CORENAME}")
+set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
+
+set (_PKG_CONFIG_LIBS_PRIVATE)
+
+if (NOT ONLY_SHARED_LIBS)
+ set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${HDF5_HL_F90_LIB_CORENAME}")
+endif ()
+if (BUILD_SHARED_LIBS)
+ set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${HDF5_HL_F90_LIB_CORENAME}")
+endif ()
+
+set (_PKG_CONFIG_REQUIRES "${HDF5_F90_LIB_CORENAME}")
+set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_F90_LIB_CORENAME}")
+
+configure_file (
+ ${HDF_RESOURCES_DIR}/libhdf5.pc.in
+ ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_HL_F90_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}.pc
+ @ONLY
+)
+install (
+ FILES ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_HL_F90_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}.pc
+ DESTINATION ${HDF5_INSTALL_LIB_DIR}/pkgconfig
+ COMPONENT hlfortlibraries
+)
+
+if (NOT WIN32 AND NOT MINGW)
+ set (_PKG_CONFIG_COMPILER ${CMAKE_Fortran_COMPILER})
+ configure_file (
+ ${HDF_RESOURCES_DIR}/libh5cc.in
+ ${HDF5_BINARY_DIR}/CMakeFiles/h5hlfc
+ @ONLY
+ )
+ install (
+ FILES ${HDF5_BINARY_DIR}/CMakeFiles/h5hlfc
+ DESTINATION ${HDF5_INSTALL_BIN_DIR}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ COMPONENT hlfortlibraries
+ )
+endif ()
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 56ea804..a6eac8e 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -29,6 +29,7 @@ If you have any questions or comments, please send them to the HDF Help Desk:
CONTENTS
+========
- New Features
- Support for new platforms and languages
@@ -45,6 +46,22 @@ New Features
Configuration:
-------------
+ - CMake option to build the HDF filter plugins project as an external project
+
+ The HDF filter plugins project is a collection of registered compression
+ filters that can be dynamically loaded when needed to access data stored
+ in a hdf5 file. This CMake-only option allows the plugins to be built and
+ distributed with the hdf5 library and tools. Like the options for szip and
+ zlib, either a tgz file or a git repository can be specified for the source.
+
+ The option was refactored to use the CMake FetchContent process. This allows
+ more control over the filter targets, but required external project command
+ options to be moved to a CMake include file, HDF5PluginCache.cmake. Also
+ enabled the filter examples to be used as tests for operation of the
+ filter plugins.
+
+ (ADB - 2020/12/10, OESS-98)
+
- Autotools and CMake target added to produce doxygen generated documentation
The default is OFF or disabled.
@@ -84,7 +101,7 @@ New Features
There are more options necessary for various filters and the plugin project
documents should be referenced.
- (ADB - 2020/10/16, OESS-98)
+ (ADB - 2020/10/16, OESS-98)
- Added CMake option to format source files
@@ -96,7 +113,7 @@ New Features
(ADB - 2020/09/24)
- CMake option to link the generated Fortran MOD files into the include
- directory.
+ directory.
The Fortran generation of MOD files by a Fortran compile can produce
different binary files between SHARED and STATIC compiles with different
@@ -118,7 +135,7 @@ New Features
The defaults can be overriden by setting the config option
HDF5_INSTALL_MOD_FORTRAN to one of NO, SHARED, or STATIC
- (ADB - 2020/07/9, HDFFV-11116)
+ (ADB - 2020/07/09, HDFFV-11116)
- CMake option to use AEC (open source SZip) library instead of SZip
@@ -193,16 +210,16 @@ New Features
Currently h5repack preserves external links and cannot copy and merge
data from the external files. Two options, merge and prune, were added to
control how to merge data from an external link into the resulting file.
- --merge Follow external soft link recursively and merge data.
- --prune Do not follow external soft links and remove link.
- --merge --prune Follow external link, merge data and remove dangling link.
+ --merge Follow external soft link recursively and merge data.
+ --prune Do not follow external soft links and remove link.
+ --merge --prune Follow external link, merge data and remove dangling link.
(ADB - 2020/08/05, HDFFV-9984)
Support for new platforms, languages and compilers.
=======================================
-
+ -
Bug Fixes since HDF5-1.12.0 release
==================================
@@ -230,7 +247,7 @@ Bug Fixes since HDF5-1.12.0 release
(ADB - 2020/08/12, HDFFV-11127)
- H5Sset_extent_none() sets the dataspace class to H5S_NO_CLASS which
- causes asserts/errors when passed to other dataspace API calls.
+ causes asserts/errors when passed to other dataspace API calls.
H5S_NO_CLASS is an internal class value that should not have been
exposed via a public API call.
@@ -240,7 +257,7 @@ Bug Fixes since HDF5-1.12.0 release
The new library behavior is for H5Sset_extent_none() to convert
the dataspace into one of type H5S_NULL, which is better handled
- by the library and easier for developers to reason about.
+ by the library and easier for developers to reason about.
(DER - 2020/07/27, HDFFV-11027)
@@ -318,7 +335,7 @@ Bug Fixes since HDF5-1.12.0 release
directory, and on Macs the loader path for libhdf5.xxxs.so is changed
in the temporary copy of libhdf5_java.dylib.
- (LRK, 2020/7/2, HDFFV-11063)
+ (LRK, 2020/07/02, HDFFV-11063)
Supported Platforms
@@ -367,12 +384,10 @@ Supported Platforms
(emu) Sun Fortran 95 8.6 SunOS_sparc
Sun C++ 5.12 SunOS_sparc
- Windows 7 x64 Visual Studio 2015 w/ Intel C, Fortran 2018 (cmake)
- Visual Studio 2015 w/ MSMPI 10 (cmake)
-
Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 18 (cmake)
Visual Studio 2017 w/ Intel Fortran 19 (cmake)
Visual Studio 2019 w/ Intel Fortran 19 (cmake)
+ Visual Studio 2019 w/ MSMPI 10.1 (cmake)
Mac OS X Yosemite 10.10.5 Apple clang/clang++ version 6.1 from Xcode 7.0
64-bit gfortran GNU Fortran (GCC) 4.9.2
@@ -408,10 +423,6 @@ Platform C F90/ F90 C++ zlib SZIP
parallel F2003 parallel
Solaris2.11 32-bit n y/y n y y y
Solaris2.11 64-bit n y/n n y y y
-Windows 7 y y/y n y y y
-Windows 7 x64 y y/y y y y y
-Windows 7 Cygwin n y/n n y y y
-Windows 7 x64 Cygwin n y/n n y y y
Windows 10 y y/y n y y y
Windows 10 x64 y y/y n y y y
Mac OS X Mountain Lion 10.8.5 64-bit n y/y n y y y
@@ -430,10 +441,6 @@ Platform Shared Shared Shared Thread-
C libs F90 libs C++ libs safe
Solaris2.11 32-bit y y y y
Solaris2.11 64-bit y y y y
-Windows 7 y y y y
-Windows 7 x64 y y y y
-Windows 7 Cygwin n n n y
-Windows 7 x64 Cygwin n n n y
Windows 10 y y y y
Windows 10 x64 y y y y
Mac OS X Mountain Lion 10.8.5 64-bit y n y y
@@ -481,9 +488,15 @@ The following platforms are not supported but have been tested for this release.
MPICH 3.3
OpenMPI 2.1.5, 3.1.3, 4.0.0
- Fedora30 5.3.11-200.fc30.x86_64
- #1 SMP x86_64 GNU/Linux GNU gcc (GCC) 9.2.1 20190827 (Red Hat 9.2.1 20190827)
- GNU Fortran (GCC) 9.2.1 20190827 (Red Hat 9.2.1 20190827)
+ Fedora32 5.8.18-200.fc32.x86_64
+ #1 SMP x86_64 GNU/Linux GNU gcc (GCC) 10.2.1 20201016 (Red Hat 10.2.1-6)
+ GNU Fortran (GCC) 10.2.1 20201016 (Red Hat 10.2.1-6)
+ clang version 10.0.1 (Fedora 10.0.1-3.fc32)
+ (cmake and autotools)
+
+ Ubuntu20.10 -5.8.0-29-generic-x86_64
+ #31-Ubuntu SMP x86_64 GNU/Linux GNU gcc (GCC) 10.2.0-13ubuntu1
+ GNU Fortran (GCC) 10.2.0-13ubuntu1
(cmake and autotools)
@@ -499,6 +512,9 @@ Known Problems
images, but since this is a collective operation, a deadlock is possible
if one or more processes do not participate.
+ CPP ptable test fails on both VS2017 and VS2019 with Intel compiler, JIRA
+ issue: HDFFV-10628. This test will pass with VS2015 with Intel compiler.
+
Known problems in previous releases can be found in the HISTORY*.txt files
in the HDF5 source. Please report any new problems found to
help@hdfgroup.org.
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 41131eb..b15ca06 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1121,7 +1121,8 @@ else ()
)
if (BUILD_SHARED_LIBS)
add_custom_command (
- OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1
+ OUTPUT ${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c
+ ${HDF5_GENERATED_SOURCE_DIR}/shared/shared_gen_SRCS.stamp1
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different "${HDF5_GENERATED_SOURCE_DIR}/H5Tinit.c" "${HDF5_GENERATED_SOURCE_DIR}/shared/H5Tinit.c"
COMMAND ${CMAKE_COMMAND}