summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2020-12-15 00:15:14 (GMT)
committerGitHub <noreply@github.com>2020-12-15 00:15:14 (GMT)
commit2acfa58d892feb6e1155625744593aafe2ea7315 (patch)
treec6c23205d67810117505b337111034f0e0c45477
parent26c2a3484fe7defb80fd6423b1b3b7ee0000cad7 (diff)
downloadhdf5-2acfa58d892feb6e1155625744593aafe2ea7315.zip
hdf5-2acfa58d892feb6e1155625744593aafe2ea7315.tar.gz
hdf5-2acfa58d892feb6e1155625744593aafe2ea7315.tar.bz2
OESS-98 Update plugin build option (#172)
-rw-r--r--CMakeFilters.cmake2
-rw-r--r--CMakeInstallation.cmake13
-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/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.txt93
11 files changed, 222 insertions, 172 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 c07af86..2626264 100644
--- a/CMakeInstallation.cmake
+++ b/CMakeInstallation.cmake
@@ -245,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 90450a8..135e1ba 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -828,17 +828,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)
@@ -856,11 +845,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 ()
#-----------------------------------------------------------------------------
@@ -931,6 +915,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 1edec4a..88ac94c 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3387,6 +3387,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/libh5cc.in
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/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 67d54b9..34d79a7 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -560,5 +560,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 d5944b8..14b7f44 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -31,6 +31,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
@@ -47,55 +48,71 @@ 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.
- Autoconf option is '--enable-doxygen'
+ The default is OFF or disabled.
+ Autoconf option is '--enable-doxygen'
autotools make target is 'doxygen' and will build all doxygen targets
- CMake configure option is 'HDF5_BUILD_DOC'.
+ CMake configure option is 'HDF5_BUILD_DOC'.
CMake target is 'doxygen' for all available doxygen targets
CMake target is 'hdf5lib_doc' for the src subdirectory
- (ADB - 2020/11/13)
+ (ADB - 2020/11/13)
- CMake option to use MSVC naming conventions with MinGW
- HDF5_MSVC_NAMING_CONVENTION option enable to use MSVC naming conventions
- when using a MinGW toolchain
+ HDF5_MSVC_NAMING_CONVENTION option enable to use MSVC naming conventions
+ when using a MinGW toolchain
- (xan - 2020/10/30)
+ (xan - 2020/10/30)
- CMake option to statically link gcc libs with MinGW
- HDF5_MINGW_STATIC_GCC_LIBS allows to statically link libg/libstdc++
- with the MinGW toolchain
+ HDF5_MINGW_STATIC_GCC_LIBS allows to statically link libg/libstdc++
+ with the MinGW toolchain
- (xan - 2020/10/30)
+ (xan - 2020/10/30)
- 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 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 necessary options are (see the INSTALL_CMake.txt file):
+ The necessary options are (see the INSTALL_CMake.txt file):
HDF5_ENABLE_PLUGIN_SUPPORT
PLUGIN_TGZ_NAME or PLUGIN_GIT_URL
- There are more options necessary for various filters and the plugin project
- documents should be referenced.
+ 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
- HDF5_ENABLE_FORMATTERS option will enable creation of targets using the
- pattern - HDF5_*_SRC_FORMAT - where * corresponds to the source folder
- or tool folder. All sources can be formatted by executing the format target;
- make format
+ HDF5_ENABLE_FORMATTERS option will enable creation of targets using the
+ pattern - HDF5_*_SRC_FORMAT - where * corresponds to the source folder
+ or tool folder. All sources can be formatted by executing the format target;
+ make format
- (ADB - 2020/09/24)
+ (ADB - 2020/09/24)
Library:
--------
@@ -113,12 +130,13 @@ New Features
----------------
- Added new H5S functions.
- H5Sselect_copy, H5Sselect_shape_same, H5Sselect_adjust,
- H5Sselect_intersect_block, H5Sselect_project_intersection,
- H5Scombine_hyperslab, H5Smodify_select, H5Scombine_select
- wrapper functions added.
+ H5Sselect_copy, H5Sselect_shape_same, H5Sselect_adjust,
+ H5Sselect_intersect_block, H5Sselect_project_intersection,
+ H5Scombine_hyperslab, H5Smodify_select, H5Scombine_select
+ wrapper functions added.
+
+ (ADB - 2020/10/27, HDFFV-10868)
- (ADB - 2020/10/27, HDFFV-10868)
Tools:
------
@@ -146,7 +164,6 @@ Support for new platforms, languages and compilers.
Bug Fixes since HDF5-1.10.7 release
==================================
-
Library
-------
-
@@ -222,8 +239,6 @@ Supported Platforms
32- and 64-bit Studio 12.6 Fortran 95 8.8 SunOS_sparc 2017/05/30
(hedgehog) Sun C++ 5.15 SunOS_sparc 2017/05/30
- Windows 7 x64 Visual Studio 2015 w/ Intel C, Fortran 2018 (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)
@@ -250,7 +265,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 x64 y y/y y 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 El Capitan 10.11.6 64-bit n y/y n y y y
@@ -267,7 +281,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 x64 y y y y
Windows 10 y y y y
Windows 10 x64 y y y y
Mac OS X El Capitan 10.11.6 64-bit y n y y
@@ -332,9 +345,15 @@ The following platforms are not supported but have been tested for this release.
# 1SMP x86_64 GNU/Linux gcc/7.2.0, 8.2.0
(mutrino) intel/17.0.4, 18.0.2, 19.0.4
- Fedora 32 5.7.15-200.fc32.x86_64 Clang version 10.0.0 (Fedora 10.0.0-2.fc32)
- #1 SMP x86_64 GNU/Linux GNU gcc (GCC) 10.2.1 20200723 (Red Hat 10.2.1-1)
- GNU Fortran (GCC) 10.2.1 20200723 (Red Hat 10.2.1)
+ 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)
Mac OS X El Capitan 10.11.6 Apple clang version 7.3.0 from Xcode 7.3