CMake: (feature) libaec (#703)

* CMake: (feature) libaec

Implemented better support for the compression library libaec.
Especially, for the new version 1.0.5:
- The CMake config files of this version 1.0.5 now set certain
  SZIP variables which can be used in the existing
  CMake structure.
- Both static and shared SZIP compatible libaec library contains
  all required objects such it can be easily used when building
  HDF5 from scratch.
- Introduced the USE_LIBAEC_STATIC option to make use of the static
  version of SZIP compatible libaec library.

* CMake: (fix) libaec

Implemented the fallback option for the case if version 1.0.5
of libaec could not be found.

* Docs: Added description about libaec implementation.

Added short description about the libaec improvement to the Bug Fixes
section in the Configuration sub-section.
This commit is contained in:
Jan-Willem Blokland 2021-07-14 17:42:14 +02:00 committed by GitHub
parent 31027a997c
commit 21c6bb38e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 3 deletions

View File

@ -10,6 +10,7 @@
# help@hdfgroup.org.
#
option (USE_LIBAEC "Use AEC library as SZip Filter" OFF)
option (USE_LIBAEC_STATIC "Use static AEC library " OFF)
include (ExternalProject)
include (FetchContent)
@ -110,13 +111,24 @@ option (HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF)
if (HDF5_ENABLE_SZIP_SUPPORT)
option (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF)
if (NOT SZIP_USE_EXTERNAL)
find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
if (NOT SZIP_FOUND)
find_package (SZIP) # Legacy find
set(SZIP_FOUND FALSE)
if (USE_LIBAEC)
set(libaec_USE_STATIC_LIBS ${USE_LIBAEC_STATIC})
find_package (libaec 1.0.5 CONFIG)
if (SZIP_FOUND)
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES})
endif ()
endif ()
if (NOT SZIP_FOUND)
find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
if (NOT SZIP_FOUND)
find_package (SZIP) # Legacy find
if (SZIP_FOUND)
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES})
endif ()
endif ()
endif ()
endif ()
if (SZIP_FOUND)
set (H5_HAVE_FILTER_SZIP 1)

View File

@ -1060,6 +1060,21 @@ Bug Fixes since HDF5-1.12.0 release
Configuration
-------------
- Better support for libaec (open-source Szip library) in CMake
Implemented better support for libaec 1.0.5 (or later) library. This version
of libaec contains improvements for better integration with HDF5. Furthermore,
the variable USE_LIBAEC_STATIC has been introduced to allow to make use of
static version of libaec library. Use libaec_DIR or libaec_ROOT to set
the location in which libaec can be found.
Be aware, the Szip library of libaec 1.0.4 depends on another library within
libaec library. This dependency is not specified in the current CMake
configuration which means that one can not use the static Szip library of
libaec 1.0.4 when building HDF5. This has been resolved in libaec 1.0.5.
(JWSB - 2021/06/22)
- Refactor CMake configure for Fortran
The Fortran configure tests for KINDs reused a single output file that was