mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
OESS-98 convert plugin option to FetchContent, add tests (#155)
* OESS-98 convert plugin option to FetchContent, add tests * Fixes for pkcfg files because of plugin option * Update other test machines * OESS-98 fix tools test for plugins * HDFFV-10865 performance improvement for java array
This commit is contained in:
+1
-1
@@ -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)")
|
||||
|
||||
@@ -249,19 +249,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
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
+15
-16
@@ -855,17 +855,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)
|
||||
@@ -883,11 +872,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 ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -984,6 +968,21 @@ if (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools
|
||||
endif ()
|
||||
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 examples
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
@@ -3505,6 +3505,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
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# 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 (HDF5_DUMP_EXECUTABLE $<TARGET_FILE:h5dump-shared> CACHE STRING "hdf5 h5dump target" FORCE)
|
||||
set (HDF5_REPACK_EXECUTABLE $<TARGET_FILE:h5repack-shared> CACHE STRING "hdf5 h5repack target" 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)
|
||||
@@ -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 ()
|
||||
|
||||
@@ -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
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
@@ -563,5 +563,3 @@ if (NOT WIN32 AND NOT MINGW)
|
||||
COMPONENT fortlibraries
|
||||
)
|
||||
endif ()
|
||||
|
||||
|
||||
|
||||
@@ -133,4 +133,3 @@ if (NOT WIN32 AND NOT MINGW)
|
||||
COMPONENT hlcpplibraries
|
||||
)
|
||||
endif ()
|
||||
|
||||
|
||||
@@ -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 ()
|
||||
|
||||
+118
-182
@@ -16,6 +16,7 @@ package hdf.hdf5lib;
|
||||
|
||||
import hdf.hdf5lib.exceptions.HDF5Exception;
|
||||
import hdf.hdf5lib.exceptions.HDF5JavaException;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* This is a class for handling multidimensional arrays for HDF.
|
||||
@@ -394,6 +395,7 @@ public class HDFArray {
|
||||
throw (ex);
|
||||
}
|
||||
_barray = bytes; /* hope that the bytes are correct.... */
|
||||
|
||||
if (ArrayDescriptor.dims == 1) {
|
||||
/* special case */
|
||||
/* 2 data copies here! */
|
||||
@@ -496,8 +498,62 @@ public class HDFArray {
|
||||
|
||||
Object oo = _theArray;
|
||||
int n = 0; /* the current byte */
|
||||
int m = 0; /* the current array index */
|
||||
int index = 0;
|
||||
int i;
|
||||
Object flattenedArray = null;
|
||||
switch (ArrayDescriptor.NT) {
|
||||
case 'J':
|
||||
flattenedArray = (Object) HDFNativeData.byteToLong(_barray);
|
||||
break;
|
||||
case 'S':
|
||||
flattenedArray = (Object) HDFNativeData.byteToShort(_barray);
|
||||
break;
|
||||
case 'I':
|
||||
flattenedArray = (Object) HDFNativeData.byteToInt(_barray);
|
||||
break;
|
||||
case 'F':
|
||||
flattenedArray = (Object) HDFNativeData.byteToFloat(_barray);
|
||||
break;
|
||||
case 'D':
|
||||
flattenedArray = (Object) HDFNativeData.byteToDouble(_barray);
|
||||
break;
|
||||
case 'B':
|
||||
flattenedArray = (Object) _barray;
|
||||
break;
|
||||
case 'L':
|
||||
switch (ArrayDescriptor.className) {
|
||||
case "java.lang.Byte":
|
||||
flattenedArray = (Object) ByteToByteObj(_barray);
|
||||
break;
|
||||
case "java.lang.Short":
|
||||
flattenedArray = (Object) ByteToShort(_barray);
|
||||
break;
|
||||
case "java.lang.Integer":
|
||||
flattenedArray = (Object) ByteToInteger(_barray);
|
||||
break;
|
||||
case "java.lang.Long":
|
||||
flattenedArray = (Object) ByteToLongObj(_barray);
|
||||
break;
|
||||
case "java.lang.Float":
|
||||
flattenedArray = (Object) ByteToFloatObj(_barray);
|
||||
break;
|
||||
case "java.lang.Double":
|
||||
flattenedArray = (Object) ByteToDoubleObj(_barray);
|
||||
break;
|
||||
default:
|
||||
HDF5JavaException ex = new HDF5JavaException(
|
||||
"HDFArray: unsupported Object type: "
|
||||
+ ArrayDescriptor.NT);
|
||||
throw (ex);
|
||||
} // end of switch statement for arrays of boxed objects
|
||||
default:
|
||||
HDF5JavaException ex = new HDF5JavaException(
|
||||
"HDFArray: unknown or unsupported type: "
|
||||
+ ArrayDescriptor.NT);
|
||||
throw (ex);
|
||||
} // end of switch statement for arrays of primitives
|
||||
|
||||
while (n < ArrayDescriptor.totalSize) {
|
||||
oo = ArrayDescriptor.objs[0];
|
||||
index = n / ArrayDescriptor.bytetoindex[0];
|
||||
@@ -524,172 +580,58 @@ public class HDFArray {
|
||||
|
||||
/* array-ify */
|
||||
try {
|
||||
if (ArrayDescriptor.NT == 'J') {
|
||||
long[] arow = HDFNativeData.byteToLong(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
arow);
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.NT == 'I') {
|
||||
int[] arow = HDFNativeData.byteToInt(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
arow);
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.NT == 'S') {
|
||||
short[] arow = HDFNativeData.byteToShort(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
arow);
|
||||
Object arow = null;
|
||||
int mm = m + ArrayDescriptor.dimlen[ArrayDescriptor.dims];
|
||||
switch (ArrayDescriptor.NT) {
|
||||
case 'B':
|
||||
arow = (Object) Arrays.copyOfRange((byte[]) flattenedArray, m, mm);
|
||||
break;
|
||||
case 'S':
|
||||
arow = (Object) Arrays.copyOfRange((short[]) flattenedArray, m, mm);
|
||||
break;
|
||||
case 'I':
|
||||
arow = (Object) Arrays.copyOfRange((int[]) flattenedArray, m, mm);
|
||||
break;
|
||||
case 'J':
|
||||
arow = (Object) Arrays.copyOfRange((long[]) flattenedArray, m, mm);
|
||||
break;
|
||||
case 'F':
|
||||
arow = (Object) Arrays.copyOfRange((float[]) flattenedArray, m, mm);
|
||||
break;
|
||||
case 'D':
|
||||
arow = (Object) Arrays.copyOfRange((double[]) flattenedArray, m, mm);
|
||||
break;
|
||||
case 'L':
|
||||
switch (ArrayDescriptor.className) {
|
||||
case "java.lang.Byte":
|
||||
arow = (Object) Arrays.copyOfRange((Byte[])flattenedArray, m, mm);
|
||||
break;
|
||||
case "java.lang.Short":
|
||||
arow = (Object) Arrays.copyOfRange((Short[])flattenedArray, m, mm);
|
||||
break;
|
||||
case "java.lang.Integer":
|
||||
arow = (Object) Arrays.copyOfRange((Integer[])flattenedArray, m, mm);
|
||||
break;
|
||||
case "java.lang.Long":
|
||||
arow = (Object) Arrays.copyOfRange((Long[])flattenedArray, m, mm);
|
||||
break;
|
||||
case "java.lang.Float":
|
||||
arow = (Object) Arrays.copyOfRange((Float[])flattenedArray, m, mm);
|
||||
break;
|
||||
case "java.lang.Double":
|
||||
arow = (Object) Arrays.copyOfRange((Double[])flattenedArray, m, mm);
|
||||
break;
|
||||
} // end of switch statement for arrays of boxed numerics
|
||||
} // end of switch statement for arrays of primitives
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.NT == 'B') {
|
||||
System.arraycopy(_barray, n,
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 1], 0,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims]);
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
}
|
||||
else if (ArrayDescriptor.NT == 'F') {
|
||||
float arow[] = HDFNativeData.byteToFloat(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
arow);
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.NT == 'D') {
|
||||
double[] arow = HDFNativeData.byteToDouble(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
arow);
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.NT == 'L') {
|
||||
if (ArrayDescriptor.className.equals("java.lang.Byte")) {
|
||||
Byte I[] = ByteToByteObj(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
I);
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.className
|
||||
.equals("java.lang.Integer")) {
|
||||
Integer I[] = ByteToInteger(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
I);
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.className
|
||||
.equals("java.lang.Short")) {
|
||||
Short I[] = ByteToShort(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
I);
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.className
|
||||
.equals("java.lang.Float")) {
|
||||
Float I[] = ByteToFloatObj(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
I);
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.className
|
||||
.equals("java.lang.Double")) {
|
||||
Double I[] = ByteToDoubleObj(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
I);
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else if (ArrayDescriptor.className.equals("java.lang.Long")) {
|
||||
Long I[] = ByteToLongObj(n,
|
||||
ArrayDescriptor.dimlen[ArrayDescriptor.dims],
|
||||
_barray);
|
||||
java.lang.reflect.Array
|
||||
.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
I);
|
||||
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
}
|
||||
else {
|
||||
HDF5JavaException ex = new HDF5JavaException(
|
||||
"HDFArray: unsupported Object type: "
|
||||
+ ArrayDescriptor.NT);
|
||||
throw (ex);
|
||||
}
|
||||
}
|
||||
else {
|
||||
HDF5JavaException ex = new HDF5JavaException(
|
||||
"HDFArray: unknown or unsupported type: "
|
||||
+ ArrayDescriptor.NT);
|
||||
throw (ex);
|
||||
}
|
||||
java.lang.reflect.Array.set(
|
||||
ArrayDescriptor.objs[ArrayDescriptor.dims - 2],
|
||||
(ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]),
|
||||
arow);
|
||||
n += ArrayDescriptor.bytetoindex[ArrayDescriptor.dims - 1];
|
||||
ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1]++;
|
||||
m = mm;
|
||||
}
|
||||
catch (OutOfMemoryError err) {
|
||||
HDF5JavaException ex = new HDF5JavaException(
|
||||
@@ -717,25 +659,15 @@ public class HDFArray {
|
||||
+ (ArrayDescriptor.dimlen[i] - 1) + "?"));
|
||||
}
|
||||
}
|
||||
if (ArrayDescriptor.NT != 'B') {
|
||||
if (ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1] != ArrayDescriptor.dimlen[ArrayDescriptor.dims - 1]) {
|
||||
throw new java.lang.InternalError(new String(
|
||||
"HDFArray::arrayify Panic didn't complete all data: currentindex["
|
||||
+ i + "] = " + ArrayDescriptor.currentindex[i]
|
||||
+ " (should be " + (ArrayDescriptor.dimlen[i])
|
||||
+ "?"));
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1] != (ArrayDescriptor.dimlen[ArrayDescriptor.dims - 1] - 1)) {
|
||||
throw new java.lang.InternalError(new String(
|
||||
"HDFArray::arrayify Panic didn't complete all data: currentindex["
|
||||
+ i + "] = " + ArrayDescriptor.currentindex[i]
|
||||
+ " (should be "
|
||||
+ (ArrayDescriptor.dimlen[i] - 1) + "?"));
|
||||
}
|
||||
if (ArrayDescriptor.currentindex[ArrayDescriptor.dims - 1] != ArrayDescriptor.dimlen[ArrayDescriptor.dims - 1]) {
|
||||
throw new java.lang.InternalError(new String(
|
||||
"HDFArray::arrayify Panic didn't complete all data: currentindex["
|
||||
+ i + "] = " + ArrayDescriptor.currentindex[i]
|
||||
+ " (should be " + (ArrayDescriptor.dimlen[i])
|
||||
+ "?"));
|
||||
}
|
||||
|
||||
|
||||
return _theArray;
|
||||
}
|
||||
|
||||
@@ -944,6 +876,7 @@ class ArrayDescriptor {
|
||||
static int[] currentindex = null;
|
||||
static int[] bytetoindex = null;
|
||||
static int totalSize = 0;
|
||||
static int totalElements = 0;
|
||||
static Object[] objs = null;
|
||||
static char NT = ' '; /* must be B,S,I,L,F,D, else error */
|
||||
static int NTsize = 0;
|
||||
@@ -1052,6 +985,7 @@ class ArrayDescriptor {
|
||||
dimlen[0] = 1;
|
||||
dimstart[0] = 0;
|
||||
currentindex[0] = 0;
|
||||
int elements = 1;
|
||||
int i;
|
||||
for (i = 1; i <= dims; i++) {
|
||||
dimlen[i] = java.lang.reflect.Array.getLength((Object) o);
|
||||
@@ -1059,7 +993,9 @@ class ArrayDescriptor {
|
||||
objs[i] = o;
|
||||
dimstart[i] = 0;
|
||||
currentindex[i] = 0;
|
||||
elements *= dimlen[i];
|
||||
}
|
||||
totalElements = elements;
|
||||
|
||||
int j;
|
||||
int dd;
|
||||
@@ -1083,7 +1019,7 @@ class ArrayDescriptor {
|
||||
System.out.println("Class: " + theClass);
|
||||
System.out.println("NT: " + NT + " NTsize: " + NTsize);
|
||||
System.out.println("Array has " + dims + " dimensions (" + totalSize
|
||||
+ " bytes)");
|
||||
+ " bytes, " + totalElements + " elements)");
|
||||
int i;
|
||||
for (i = 0; i <= dims; i++) {
|
||||
Class tc = objs[i].getClass();
|
||||
|
||||
+36
-17
@@ -47,6 +47,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)
|
||||
|
||||
- FreeBSD Autotools configuration now defaults to 'cc' and 'c++' compilers
|
||||
|
||||
On FreeBSD, the autotools defaulted to 'gcc' as the C compiler and did
|
||||
@@ -216,7 +232,7 @@ New Features
|
||||
NO YES Default to SHARED
|
||||
NO NO Default to SHARED
|
||||
The defaults can be overriden by setting the config option
|
||||
HDF5_INSTALL_MOD_FORTRAN to one of NO, SHARED, or STATIC
|
||||
HDF5_INSTALL_MOD_FORTRAN to one of NO, SHARED, or STATIC
|
||||
|
||||
(ADB - 2020/07/09, HDFFV-11116)
|
||||
|
||||
@@ -620,7 +636,6 @@ Support for new platforms, languages and compilers.
|
||||
|
||||
Bug Fixes since HDF5-1.12.0 release
|
||||
==================================
|
||||
|
||||
Library
|
||||
-------
|
||||
- Creation of dataset with optional filter
|
||||
@@ -705,6 +720,17 @@ Bug Fixes since HDF5-1.12.0 release
|
||||
|
||||
Java Library:
|
||||
----------------
|
||||
- The H5FArray.java class, in which virtually the entire execution time
|
||||
is spent using the HDFNativeData method that converts from an array
|
||||
of bytes to an array of the destination Java type.
|
||||
|
||||
1. Convert the entire byte array into a 1-d array of the desired type,
|
||||
rather than performing 1 conversion per row;
|
||||
2. Use the Java Arrays method copyOfRange to grab the section of the
|
||||
array from (1) that is desired to be inserted into the destination array.
|
||||
|
||||
(PGT,ADB - 2020/12/13, HDFFV-10865)
|
||||
|
||||
- Added ability to test java library with VOLs.
|
||||
|
||||
Created new CMake script that combines the java and vol test scripts.
|
||||
@@ -830,11 +856,11 @@ Bug Fixes since HDF5-1.12.0 release
|
||||
-------
|
||||
- Stopped java/test/junit.sh.in installing libs for testing under ${prefix}
|
||||
|
||||
Lib files needed are now copied to a subdirectory in the java/test
|
||||
directory, and on Macs the loader path for libhdf5.xxxs.so is changed
|
||||
in the temporary copy of libhdf5_java.dylib.
|
||||
Lib files needed are now copied to a subdirectory in the java/test
|
||||
directory, and on Macs the loader path for libhdf5.xxxs.so is changed
|
||||
in the temporary copy of libhdf5_java.dylib.
|
||||
|
||||
(LRK, 2020/07/02, HDFFV-11063)
|
||||
(LRK, 2020/07/02, HDFFV-11063)
|
||||
|
||||
|
||||
Supported Platforms
|
||||
@@ -859,12 +885,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
|
||||
@@ -896,10 +920,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
|
||||
@@ -918,10 +938,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
|
||||
@@ -996,6 +1012,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.
|
||||
|
||||
Reference in New Issue
Block a user