More info for building plugins with library

This commit is contained in:
Allen Byrne 2020-09-28 09:41:43 -05:00
parent e7fbeb2e8c
commit 088014bef4
3 changed files with 125 additions and 11 deletions

View File

@ -65,6 +65,9 @@ External compression szip and zlib libraries:
SZip.tar.gz
ZLib.tar.gz
External compression plugin libraries:
hdf5_plugins.tar.gz
Examples Source package:
HDF5Examples-1.14.x-Source.tar.gz
@ -306,9 +309,28 @@ IV. Further considerations
TGZPATH:STRING="some_location"
where "some_location" is the URL or full path to the compressed
file and ext is the type of compression file. Also set CMAKE_BUILD_TYPE
to the configuration type during configuration
to the configuration type during configuration. See the settings in the
config/cmake/cacheinit.cmake file HDF uses for testing.
3. If you are building on Apple Darwin platforms, you should add the
3. If you plan to use compression plugins:
A. Use source packages from an GIT server by adding the following CMake
options:
HDF5_ALLOW_EXTERNAL_SUPPORT:STRING="GIT"
PLUGIN_GIT_URL:STRING="http://some_location/plugins"
where "some_location" is the URL to the GIT repository. Also set
CMAKE_BUILD_TYPE to the configuration type.
B. Use source packages from a compressed file by adding the following
CMake options:
HDF5_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ"
PLUGIN_TGZ_NAME:STRING="plugin_src.ext"
TGZPATH:STRING="some_location"
where "some_location" is the URL or full path to the compressed
file and ext is the type of compression file. Also set CMAKE_BUILD_TYPE
to the configuration type during configuration. See the settings in the
config/cmake/cacheinit.cmake file HDF uses for testing.
4. If you are building on Apple Darwin platforms, you should add the
following options:
Compiler choice - use xcode by setting the ENV variables of CC and CXX
Shared fortran is not supported, build static:
@ -318,11 +340,11 @@ IV. Further considerations
CTEST_USE_LAUNCHERS:BOOL=ON
CMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
4. Windows developers should install NSIS or WiX to create an install image with CPack.
5. Windows developers should install NSIS or WiX to create an install image with CPack.
Visual Studio Express users will not be able to package HDF5 into
an install image executable.
5. Developers can copy the config/cmake/cacheinit.cmake file and alter the
6. Developers can copy the config/cmake/cacheinit.cmake file and alter the
the settings for the developers' environment. Then the only options needed
on the command line are those options that are different. Example using HDF
default cache file:
@ -330,7 +352,7 @@ IV. Further considerations
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \
-DCMAKE_BUILD_TYPE:STRING=Release ..
6. CMake uses a toolchain of utilities to compile, link libraries and
7. CMake uses a toolchain of utilities to compile, link libraries and
create archives, and other tasks to drive the build. The toolchain
utilities available are determined by the languages enabled. In normal
builds, CMake automatically determines the toolchain for host builds
@ -481,6 +503,87 @@ These five steps are described in detail below.
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)
2. Configure the cache settings
@ -532,7 +635,7 @@ These five steps are described in detail below.
file in your build directory. Be sure to select either Debug or
Release and build the solution.
3.2.1 The external libraries (zlib and szip) can be configured
3.2.1 The external libraries (zlib, szip and plugins) can be configured
to allow building the libraries by downloading from a GIT repository.
The option is 'HDF5_ALLOW_EXTERNAL_SUPPORT'; by adding the following
configuration option:
@ -541,10 +644,11 @@ These five steps are described in detail below.
The options to control the GIT URL (config/cmake/cacheinit.cmake file) are:
ZLIB_GIT_URL:STRING="http://${git_url}/zlib"
SZIP_GIT_URL:STRING="http://${git_url}/szip"
PLUGIN_GIT_URL:STRING="http://${git_url}/plugin"
${git_url} should be changed to your location. Also define CMAKE_BUILD_TYPE
to be the configuration type.
3.2.2 Or the external libraries (zlib and szip) can be configured
3.2.2 Or the external libraries (zlib, szip and plugins) can be configured
to allow building the libraries by using a compressed file.
The option is 'HDF5_ALLOW_EXTERNAL_SUPPORT' and is enabled by
adding the following configuration option:
@ -554,7 +658,8 @@ These five steps are described in detail below.
file) are:
ZLIB_TGZ_NAME:STRING="zlib_src.ext"
SZIP_TGZ_NAME:STRING="szip_src.ext"
LIBAEC_TGZ_NAME:STRING="liaec_src.ext"
LIBAEC_TGZ_NAME:STRING="libaec_src.ext"
PLUGIN_TGZ_NAME:STRING="plugin_src.ext"
TGZPATH:STRING="some_location"
where "some_location/xxxx_src.ext" is the URL or full path to
the compressed file and where ext is the type of the compression
@ -687,8 +792,10 @@ if (HDF5_BUILD_FORTRAN)
---------------- External Library Options ---------------------
HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" "NO"
HDF5_ENABLE_PLUGIN_SUPPORT "Enable PLUGIN Filters" OFF
HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF
HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" OFF
PLUGIN_USE_EXTERNAL "Use External Library Building for PLUGINS" 0
ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 0
SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 0
if (HDF5_ENABLE_SZIP_SUPPORT)

View File

@ -9,6 +9,7 @@ This tar file contains
hdf5-1.13.0 HDF5 1.13.0 source
LIBAEC.tar.gz source for building SZIP replacement
ZLib.tar.gz source for building ZLIB
hdf5_plugins.tar.gz source for building compression plugins
For more information about building HDF5 with CMake, see USING_HDF5_CMake.txt in
hdf5-1.13.0/release_docs, or

View File

@ -52,9 +52,15 @@ New Features
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 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.
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):
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.
(ADB - 2020/09/27, OESS-98)