mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-06 17:20:42 +08:00
More info for building plugins with library
This commit is contained in:
parent
e7fbeb2e8c
commit
088014bef4
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user