From 21c6bb38e6cf0776dbdc37841280dffd6ca79990 Mon Sep 17 00:00:00 2001 From: Jan-Willem Blokland Date: Wed, 14 Jul 2021 17:42:14 +0200 Subject: 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. --- CMakeFilters.cmake | 18 +++++++++++++++--- release_docs/RELEASE.txt | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake index d5f801e..51ac61c 100644 --- a/CMakeFilters.cmake +++ b/CMakeFilters.cmake @@ -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) diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 1e69f54..bd186d8 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -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 -- cgit v0.12