summaryrefslogtreecommitdiffstats
path: root/config/cmake
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2020-09-25 21:43:57 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2020-09-25 21:43:57 (GMT)
commitff0881f35ba3de1077b168dd5383e487081a23bb (patch)
tree4960ddb7db6ee0297f5f5371af3b0ee6315f42a4 /config/cmake
parentaa08db839e6aea89487be985704d57a0e424b21b (diff)
downloadhdf5-ff0881f35ba3de1077b168dd5383e487081a23bb.zip
hdf5-ff0881f35ba3de1077b168dd5383e487081a23bb.tar.gz
hdf5-ff0881f35ba3de1077b168dd5383e487081a23bb.tar.bz2
OESS-98 merge with clang-format changes
Diffstat (limited to 'config/cmake')
-rw-r--r--config/cmake/HDF5PluginMacros.cmake146
-rw-r--r--config/cmake/HDF5_Examples_options.cmake4
-rw-r--r--config/cmake/cacheinit.cmake128
-rw-r--r--config/cmake/hdf5-config.cmake.in1
4 files changed, 278 insertions, 1 deletions
diff --git a/config/cmake/HDF5PluginMacros.cmake b/config/cmake/HDF5PluginMacros.cmake
new file mode 100644
index 0000000..3cded02
--- /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_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}
+ #-DSZ_TGZ_NAME:STRING=${SZ_TGZ_NAME}
+ #-DSZ_PACKAGE_NAME:STRING=${SZ_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_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}
+ #-DSZ_TGZ_NAME:STRING=${SZ_TGZ_NAME}
+ #-DSZ_PACKAGE_NAME:STRING=${SZ_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 386e99c..dd85b3b 100644
--- a/config/cmake/HDF5_Examples_options.cmake
+++ b/config/cmake/HDF5_Examples_options.cmake
@@ -18,6 +18,7 @@
#### HDF_BUILD_CXX:BOOL=OFF ###
#### HDF_BUILD_FORTRAN:BOOL=OFF ###
#### HDF_BUILD_JAVA:BOOL=OFF ###
+#### HDF_BUILD_FILTERS:BOOL=OFF ###
#### BUILD_TESTING:BOOL=OFF ###
#### HDF_ENABLE_PARALLEL:BOOL=OFF ###
#### HDF_ENABLE_THREADSAFE:BOOL=OFF ###
@@ -41,6 +42,9 @@
### enable JAVA builds
#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_BUILD_JAVA:BOOL=ON")
+### enable FILTERS builds
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_BUILD_FILTERS:BOOL=ON")
+
#############################################################################################
### enable parallel program builds
#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF_ENABLE_PARALLEL:BOOL=ON")
diff --git a/config/cmake/cacheinit.cmake b/config/cmake/cacheinit.cmake
index 64e8dcc..1359a12 100644
--- a/config/cmake/cacheinit.cmake
+++ b/config/cmake/cacheinit.cmake
@@ -28,6 +28,8 @@ set_property (CACHE HDF5_INSTALL_MOD_FORTRAN PROPERTY STRINGS NO SHARED STATIC)
set (HDF5_BUILD_GENERATORS ON CACHE BOOL "Build Test Generators" FORCE)
+set (HDF5_ENABLE_PLUGIN_SUPPORT ON CACHE BOOL "Enable PLUGIN Filters" FORCE)
+
set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE)
set (HDF5_ENABLE_SZIP_SUPPORT ON CACHE BOOL "Use SZip Filter" FORCE)
@@ -44,7 +46,6 @@ set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Build
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)
+
+######
+# sz
+######
+
+set (SZ_GIT_URL "https://github.com/disheng222/SZ" CACHE STRING "Use SZ from github repository" FORCE)
+set (SZ_GIT_BRANCH "master" CACHE STRING "" FORCE)
+
+set (SZ_TGZ_NAME "sz.tar.gz" CACHE STRING "Use SZ from compressed file" FORCE)
+
+set (SZ_PACKAGE_NAME "sz" 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 a0e93df..3ab088f 100644
--- a/config/cmake/hdf5-config.cmake.in
+++ b/config/cmake/hdf5-config.cmake.in
@@ -39,6 +39,7 @@ set (${HDF5_PACKAGE_NAME}_BUILD_JAVA @HDF5_BUILD_JAVA@)
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@)