mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-12 17:31:09 +08:00
Develop libaec fix (#5182)
* Use the ${LIBAEC_PACKAGE_NAME} variable instead of SZIP
This commit is contained in:
parent
2d0c676642
commit
58ae0ae200
@ -173,13 +173,18 @@ if (HDF5_ENABLE_SZIP_SUPPORT)
|
||||
set(libaec_USE_STATIC_LIBS ${HDF5_USE_LIBAEC_STATIC})
|
||||
set(SZIP_FOUND FALSE)
|
||||
# Search pure Config mode, there is not a FindSZIP module available
|
||||
find_package (SZIP NAMES ${LIBAEC_PACKAGE_NAME}${HDF_PACKAGE_EXT} OPTIONAL_COMPONENTS ${LIBAEC_SEARCH_TYPE})
|
||||
set(H5_SZIP_FOUND ${SZIP_FOUND})
|
||||
find_package (${LIBAEC_PACKAGE_NAME} NAMES ${LIBAEC_PACKAGE_NAME}${HDF_PACKAGE_EXT} OPTIONAL_COMPONENTS ${LIBAEC_SEARCH_TYPE})
|
||||
set(H5_SZIP_FOUND ${${LIBAEC_PACKAGE_NAME}_FOUND})
|
||||
if (H5_SZIP_FOUND)
|
||||
set (H5_SZIP_INCLUDE_DIR_GEN ${SZIP_INCLUDE_DIR})
|
||||
set (H5_SZIP_INCLUDE_DIRS ${H5_SZIP_INCLUDE_DIRS} ${SZIP_INCLUDE_DIR})
|
||||
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES})
|
||||
if(LIBAEC_PACKAGE_NAME STREQUAL "libaec")
|
||||
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} libaec::sz libaec::aec)
|
||||
else ()
|
||||
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES})
|
||||
endif ()
|
||||
endif ()
|
||||
message (VERBOSE "H5_SZIP_FOUND=${SZIP_FOUND} and LINK_COMP_LIBS=${LINK_COMP_LIBS}")
|
||||
else ()
|
||||
if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
|
||||
EXTERNAL_SZIP_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${HDF5_ENABLE_SZIP_ENCODING})
|
||||
@ -187,6 +192,7 @@ if (HDF5_ENABLE_SZIP_SUPPORT)
|
||||
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${H5_SZIP_STATIC_LIBRARY})
|
||||
endif ()
|
||||
endif ()
|
||||
message (VERBOSE "LINK_COMP_LIBS=${LINK_COMP_LIBS}")
|
||||
if (H5_SZIP_FOUND)
|
||||
set (H5_HAVE_FILTER_SZIP 1)
|
||||
set (H5_HAVE_SZLIB_H 1)
|
||||
|
@ -465,11 +465,12 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
|
||||
endif ()
|
||||
endif ()
|
||||
if (H5_SZIP_FOUND AND SZIP_USE_EXTERNAL)
|
||||
set (SZIP_PROJNAME "${LIBAEC_PACKAGE_NAME}")
|
||||
if (WIN32)
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${H5_SZIP_INCLUDE_DIR_GEN};SZIP;ALL;/")
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${H5_SZIP_INCLUDE_DIR_GEN};${SZIP_PROJNAME};ALL;/")
|
||||
else ()
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${H5_SZIP_INCLUDE_DIR_GEN};SZIP;libraries;/")
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${H5_SZIP_INCLUDE_DIR_GEN};SZIP;configinstall;/")
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${H5_SZIP_INCLUDE_DIR_GEN};${SZIP_PROJNAME};libraries;/")
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${H5_SZIP_INCLUDE_DIR_GEN};${SZIP_PROJNAME};configinstall;/")
|
||||
endif ()
|
||||
endif ()
|
||||
if (PLUGIN_FOUND AND PLUGIN_USE_EXTERNAL)
|
||||
|
@ -65,6 +65,8 @@ set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRIN
|
||||
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib -DZLIB_INCLUDE_DIR:PATH=some_location/include")
|
||||
#set(ENV{SZIP_ROOT} "some_location")
|
||||
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib -DSZIP_INCLUDE_DIR:PATH=some_location/include")
|
||||
#set(ENV{libaec_ROOT} "some_location")
|
||||
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -Dlibaec_LIBRARY:FILEPATH=some_location/lib/libaec.lib -Dlibaec_INCLUDE_DIR:PATH=some_location/include")
|
||||
|
||||
### disable using ext zlib
|
||||
#set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=OFF")
|
||||
|
@ -285,20 +285,26 @@ IV. Further considerations
|
||||
web site. The HDF5 2."X"."Y" product requires a minimum CMake version 3.18.
|
||||
If you are using VS2022, the CMake minimum version is 3.21.
|
||||
|
||||
2. If you plan to use Zlib or Szip:
|
||||
2. If you plan to use Zlib or Szip (aka libaec):
|
||||
A. Download the binary packages and install them in a central location.
|
||||
For example on Windows, create a folder extlibs and install the
|
||||
packages there. Add the following CMake options:
|
||||
-DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib
|
||||
-DZLIB_INCLUDE_DIR:PATH=some_location/include
|
||||
-DZLIB_USE_EXTERNAL:BOOL=OFF
|
||||
-DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib
|
||||
-DSZIP_LIBRARY:FILEPATH=some_location/lib/libszaec.lib
|
||||
-DSZIP_INCLUDE_DIR:PATH=some_location/include
|
||||
-Dlibaec_LIBRARY:FILEPATH=some_location/lib/libaec.lib
|
||||
-Dlibaec_INCLUDE_DIR:PATH=some_location/include
|
||||
-DSZIP_USE_EXTERNAL:BOOL=OFF
|
||||
where "some_location" is the full path to the extlibs folder.
|
||||
Also the appropriate environment variable must be set;
|
||||
Also if the appropriate environment variable is set, the above options are not required;
|
||||
set(ENV{ZLIB_ROOT} "some_location")
|
||||
set(ENV{SZIP_ROOT} "some_location")
|
||||
set(ENV{libaec_ROOT} "some_location")
|
||||
|
||||
Note that if there is a problem finding the libraries, try adding the
|
||||
CMake variable CMAKE_FIND_DEBUG_MODE:BOOL=ON to the command line.
|
||||
|
||||
B. Use source packages from an GIT server by adding the following CMake
|
||||
options:
|
||||
@ -307,6 +313,8 @@ IV. Further considerations
|
||||
ZLIB_GIT_BRANCH="some_branch"
|
||||
SZIP_GIT_URL:STRING="https://some_location/szip"
|
||||
SZIP_GIT_BRANCH="some_branch"
|
||||
LIBAEC_GIT_URL:STRING="https://some_location/libaec"
|
||||
LIBAEC_GIT_BRANCH="some_branch"
|
||||
where "some_location" is the URL to the GIT repository and "some_branch" is
|
||||
a branch in the repository, usually the default. Also set
|
||||
CMAKE_BUILD_TYPE to the configuration type.
|
||||
@ -505,6 +513,8 @@ These five steps are described in detail below.
|
||||
<options> is:
|
||||
* SZIP_INCLUDE_DIR:PATH=<path to szip includes directory>
|
||||
* SZIP_LIBRARY:FILEPATH=<path to szip/library file>
|
||||
* libaec_INCLUDE_DIR:PATH=<path to libaec includes directory>
|
||||
* libaec_LIBRARY:FILEPATH=<path to libaec/library file>
|
||||
* ZLIB_INCLUDE_DIR:PATH=<path to zlib includes directory>
|
||||
* ZLIB_LIBRARY:FILEPATH=<path to zlib/library file>
|
||||
* <HDF5OPTION>:BOOL=[ON | OFF]
|
||||
@ -729,6 +739,8 @@ These five steps are described in detail below.
|
||||
ZLIB_GIT_BRANCH="${git_branch}"
|
||||
SZIP_GIT_URL:STRING="https://${git_url}/szip"
|
||||
SZIP_GIT_BRANCH="${git_branch}"
|
||||
LIBAEC_GIT_URL:STRING="https://${git_url}/libaec"
|
||||
LIBAEC_GIT_BRANCH="${git_branch}"
|
||||
PLUGIN_GIT_URL:STRING="https://${git_url}/plugin"
|
||||
PLUGIN_GIT_BRANCH="${git_branch}"
|
||||
${git_url} should be changed to your location and ${git_branch} is
|
||||
|
@ -546,6 +546,23 @@ Bug Fixes since HDF5-2.0.0 release
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
- Use pre-installed libaec compression library
|
||||
|
||||
The CMake logic for finding the libaec compression library has been
|
||||
modified for a system-installed version of the library. Two options
|
||||
must be set;
|
||||
HDF5_ALLOW_EXTERNAL_SUPPORT:STRING=NO
|
||||
<LIB_PKG_NAME>_USE_EXTERNAL:BOOL=OFF
|
||||
where <LIB_PKG_NAME> is one of ZLIB, ZLIBNG, SZIP, PLUGIN.
|
||||
Note that HDF5_ALLOW_EXTERNAL_SUPPORT:STRING=NO disables building all plugins
|
||||
and external libraries in-line with the HDF5 library.
|
||||
|
||||
In addition, the <LIB_PKG_NAME>_ROOT environment variables must be set,
|
||||
where <LIB_PKG_NAME> is one of ZLIB, ZLIBNG, SZIP, libaec, PLUGIN.
|
||||
Note that libaec is the expected name for using the libaec library in place of original szip.
|
||||
|
||||
See INSTALL_CMake.txt for more detailed information.
|
||||
|
||||
- Changed the zlib/szip compression find message to FATAL ERROR
|
||||
|
||||
The message was changed to indicate that zlib/szip compression was requested and
|
||||
|
Loading…
x
Reference in New Issue
Block a user