mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
Fix find_dependency() calls so that PRIVATE-linked libraries are only propagated as transitive link requirements for static library targets Add missing find_dependency() calls for some PRIVATE-linked libraries Fix issue where parallel-enabled HDF5 can fail to locate MPI Fortran support, even when HDF5 Fortran support isn't requested Set HDF5_LIB_TYPE to only shared or static, depending on requested library type, rather than a list that could include both shared and static Fix HDF5_LIB_TYPE being undefined when components are specified, but shared/static isn't Reduce scope of modifications to CMAKE_MODULE_PATH so changes aren't propagated to consuming projects Add check for both shared and static libraries being requested and fail if so Remove enable_language() call in favor of checking enabled languages and failing if required language isn't enabled Add missing CMake variable for digitally signed plugins feature Fix CMake variable for HDF5_DIMENSION_SCALES_NEW_REF option
440 lines
20 KiB
CMake
440 lines
20 KiB
CMake
#
|
|
# Copyright by The HDF Group.
|
|
# All rights reserved.
|
|
#
|
|
# This file is part of HDF5. The full HDF5 copyright notice, including
|
|
# terms governing use, modification, and redistribution, is contained in
|
|
# the LICENSE file, which can be found at the root of the source code
|
|
# distribution tree, or in https://www.hdfgroup.org/licenses.
|
|
# If you do not have access to either file, you may request a copy from
|
|
# help@hdfgroup.org.
|
|
#
|
|
#-----------------------------------------------------------------------------
|
|
# HDF5 Config file for compiling against hdf5 build/install directory
|
|
# Sections that depend on an ENABLE type option should first check if the
|
|
# option is enabled before using the dependent variables.
|
|
#-----------------------------------------------------------------------------
|
|
@PACKAGE_INIT@
|
|
|
|
include (CMakeFindDependencyMacro)
|
|
|
|
string (TOUPPER @HDF5_PACKAGE@ HDF5_PACKAGE_NAME)
|
|
|
|
set (${HDF5_PACKAGE_NAME}_VALID_COMPONENTS
|
|
static
|
|
shared
|
|
C
|
|
CXX
|
|
Fortran
|
|
HL
|
|
CXX_HL
|
|
Fortran_HL
|
|
Java
|
|
Tools
|
|
)
|
|
|
|
set (${HDF5_PACKAGE_NAME}_BUILD_MODE @HDF_CFG_NAME@)
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Version Strings
|
|
#-----------------------------------------------------------------------------
|
|
set (${HDF5_PACKAGE_NAME}_VERSION @HDF5_VERSION_STRING@)
|
|
set (${HDF5_PACKAGE_NAME}_VERSION_STRING @HDF5_VERSION_STRING@)
|
|
set (${HDF5_PACKAGE_NAME}_VERSION_MAJOR @HDF5_VERSION_MAJOR@)
|
|
set (${HDF5_PACKAGE_NAME}_VERSION_MINOR @HDF5_VERSION_MINOR@)
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# User Options
|
|
#-----------------------------------------------------------------------------
|
|
# Languages:
|
|
#-----------------------------------------------------------------------------
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_FORTRAN @HDF5_BUILD_FORTRAN@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_CPP_LIB @HDF5_BUILD_CPP_LIB@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_JAVA @HDF5_BUILD_JAVA@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_JNI @HDF5_ENABLE_JNI@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_JAVA_COMPAT ON) # Always provide the Java compatibility API
|
|
set (${HDF5_PACKAGE_NAME}_INSTALL_MOD_FORTRAN "@HDF5_INSTALL_MOD_FORTRAN@")
|
|
#-----------------------------------------------------------------------------
|
|
# Features:
|
|
#-----------------------------------------------------------------------------
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_SHARED_LIBS @H5_ENABLE_SHARED_LIB@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_STATIC_LIBS @H5_ENABLE_STATIC_LIB@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_HL_LIB @HDF5_BUILD_HL_LIB@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_THREADS @HDF5_THREADS_ENABLED@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_THREADSAFE @HDF5_ENABLE_THREADSAFE@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_PARALLEL @HDF5_ENABLE_PARALLEL@)
|
|
set (${HDF5_PACKAGE_NAME}_DEFAULT_API_VERSION "@HDF5_DEFAULT_API_VERSION@")
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_DEPRECATED_SYMBOLS @HDF5_ENABLE_DEPRECATED_SYMBOLS@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_DIMENSION_SCALES_WITH_NEW_REF @HDF5_DIMENSION_SCALES_NEW_REF@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_PLUGIN_SIGNATURE_VERIFICATION @HDF5_REQUIRE_SIGNED_PLUGINS@)
|
|
#-----------------------------------------------------------------------------
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_TOOLS @HDF5_BUILD_TOOLS@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_STATIC_TOOLS @HDF5_BUILD_STATIC_TOOLS@)
|
|
#-----------------------------------------------------------------------------
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_NONSTANDARD_FEATURE_FLOAT16 @HDF5_ENABLE_NONSTANDARD_FEATURE_FLOAT16@)
|
|
#-----------------------------------------------------------------------------
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_ZLIB_SUPPORT @HDF5_ENABLE_ZLIB_SUPPORT@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_SZIP_SUPPORT @HDF5_ENABLE_SZIP_SUPPORT@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@)
|
|
#-----------------------------------------------------------------------------
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_MAP_API @HDF5_ENABLE_MAP_API@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_DIRECT_VFD @HDF5_ENABLE_DIRECT_VFD@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_MIRROR_VFD @HDF5_ENABLE_MIRROR_VFD@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_ROS3_VFD @HDF5_ENABLE_ROS3_VFD@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_HDFS_VFD @HDF5_ENABLE_HDFS@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_SUBFILING_VFD @HDF5_ENABLE_SUBFILING_VFD@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_PLUGIN_SUPPORT @HDF5_ENABLE_PLUGIN_SUPPORT@)
|
|
#-----------------------------------------------------------------------------
|
|
set (${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS @HDF5_PACKAGE_EXTLIBS@)
|
|
set (${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES @HDF5_LIBRARIES_TO_EXPORT@)
|
|
set (${HDF5_PACKAGE_NAME}_ARCHITECTURE "@CMAKE_GENERATOR_ARCHITECTURE@")
|
|
set (${HDF5_PACKAGE_NAME}_TOOLSET "@CMAKE_GENERATOR_TOOLSET@")
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Directories
|
|
#-----------------------------------------------------------------------------
|
|
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" "${${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_DIRS}")
|
|
|
|
set (${HDF5_PACKAGE_NAME}_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@")
|
|
set_and_check (${HDF5_PACKAGE_NAME}_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@")
|
|
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_CPP_LIB)
|
|
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
|
endif ()
|
|
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_HL_LIB)
|
|
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
|
endif ()
|
|
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_HL_LIB AND ${HDF5_PACKAGE_NAME}_PROVIDES_CPP_LIB)
|
|
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
|
endif ()
|
|
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_TOOLS)
|
|
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_TOOLS "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
|
set_and_check (${HDF5_PACKAGE_NAME}_TOOLS_DIR "@PACKAGE_CURRENT_BUILD_DIR@/bin")
|
|
endif ()
|
|
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_JAVA AND ${HDF5_PACKAGE_NAME}_PROVIDES_JNI)
|
|
set (${HDF5_PACKAGE_NAME}_JAVA_INCLUDE_DIRS
|
|
@PACKAGE_CURRENT_BUILD_DIR@/lib/@HDF5_JARHDF5_JAR_NAME@
|
|
@PACKAGE_CURRENT_BUILD_DIR@/lib/@HDF5_SLF4J_API_JAR_NAME@
|
|
@PACKAGE_CURRENT_BUILD_DIR@/lib/@HDF5_SLF4J_NOP_JAR_NAME@
|
|
)
|
|
else ()
|
|
set (${HDF5_PACKAGE_NAME}_JAVA_INCLUDE_DIRS
|
|
@PACKAGE_CURRENT_BUILD_DIR@/lib/@HDF5_JAVAHDF5_JAR_NAME@
|
|
@PACKAGE_CURRENT_BUILD_DIR@/lib/@HDF5_SLF4J_API_JAR_NAME@
|
|
@PACKAGE_CURRENT_BUILD_DIR@/lib/@HDF5_SLF4J_NOP_JAR_NAME@
|
|
)
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_JAVA_COMPAT)
|
|
list (APPEND ${HDF5_PACKAGE_NAME}_JAVA_INCLUDE_DIRS
|
|
@PACKAGE_CURRENT_BUILD_DIR@/lib/@HDF5_JARHDF5_JAR_NAME@
|
|
)
|
|
endif ()
|
|
endif ()
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Handle default components if none specified
|
|
#-----------------------------------------------------------------------------
|
|
if (NOT ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
set (${HDF5_PACKAGE_NAME}_FIND_COMPONENTS C HL)
|
|
endif ()
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Handle default shared/static libraries if none specified; prefer static
|
|
# libraries if available
|
|
#-----------------------------------------------------------------------------
|
|
if (NOT "shared" IN_LIST ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS AND NOT "static" IN_LIST ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_STATIC_LIBS)
|
|
list (APPEND ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS static)
|
|
set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_static_C true)
|
|
else ()
|
|
list (APPEND ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS shared)
|
|
set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_shared_C true)
|
|
endif ()
|
|
endif ()
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Resolve request for shared vs. static libraries before resolving
|
|
# dependencies
|
|
#-----------------------------------------------------------------------------
|
|
unset (${HDF5_PACKAGE_NAME}_LIB_TYPE)
|
|
list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
if ("shared" IN_LIST ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS AND "static" IN_LIST ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
set (${HDF5_PACKAGE_NAME}_FOUND FALSE)
|
|
set (${HDF5_PACKAGE_NAME}_NOT_FOUND_MESSAGE "The 'shared' and 'static' components are mutually exclusive; select only one.")
|
|
return ()
|
|
endif ()
|
|
if ("shared" IN_LIST ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
if (NOT ${HDF5_PACKAGE_NAME}_PROVIDES_SHARED_LIBS)
|
|
set (${HDF5_PACKAGE_NAME}_FOUND FALSE)
|
|
set (${HDF5_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Shared HDF5 libraries are not available.")
|
|
return ()
|
|
endif ()
|
|
|
|
set (${HDF5_PACKAGE_NAME}_LIB_TYPE "shared")
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_FORTRAN)
|
|
if (${HDF5_PACKAGE_NAME}_INSTALL_MOD_FORTRAN STREQUAL "SHARED")
|
|
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
|
else ()
|
|
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_CURRENT_BUILD_DIR@/mod/shared")
|
|
endif ()
|
|
endif ()
|
|
elseif ("static" IN_LIST ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
if (NOT ${HDF5_PACKAGE_NAME}_PROVIDES_STATIC_LIBS)
|
|
set (${HDF5_PACKAGE_NAME}_FOUND FALSE)
|
|
set (${HDF5_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Static HDF5 libraries are not available.")
|
|
return ()
|
|
endif ()
|
|
|
|
set (${HDF5_PACKAGE_NAME}_LIB_TYPE "static")
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_FORTRAN)
|
|
if (${HDF5_PACKAGE_NAME}_INSTALL_MOD_FORTRAN STREQUAL "STATIC")
|
|
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
|
else ()
|
|
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_CURRENT_BUILD_DIR@/mod/static")
|
|
endif ()
|
|
endif ()
|
|
endif ()
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Resolve dependencies linked with PUBLIC scope
|
|
# - these should always be propagated with find_dependency() calls, unless
|
|
# they are only used by a component that wasn't requested
|
|
#-----------------------------------------------------------------------------
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_PARALLEL)
|
|
unset (_hdf5_mpi_components)
|
|
|
|
get_property (_project_enabled_languages GLOBAL PROPERTY ENABLED_LANGUAGES)
|
|
if ("C" IN_LIST ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
if (NOT "C" IN_LIST _project_enabled_languages)
|
|
set (${HDF5_PACKAGE_NAME}_FOUND FALSE)
|
|
set (${HDF5_PACKAGE_NAME}_NOT_FOUND_MESSAGE "C language was not enabled; enable C language with project() or enable_language() commands.")
|
|
unset (_project_enabled_languages)
|
|
return ()
|
|
endif ()
|
|
list (APPEND _hdf5_mpi_components "C")
|
|
endif ()
|
|
if ("Fortran" IN_LIST ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
if (NOT "Fortran" IN_LIST _project_enabled_languages)
|
|
set (${HDF5_PACKAGE_NAME}_FOUND FALSE)
|
|
set (${HDF5_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Fortran language was not enabled; enable Fortran language with project() or enable_language() commands.")
|
|
unset (_project_enabled_languages)
|
|
return ()
|
|
endif ()
|
|
list (APPEND _hdf5_mpi_components "Fortran")
|
|
endif ()
|
|
unset (_project_enabled_languages)
|
|
|
|
find_dependency (MPI QUIET REQUIRED COMPONENTS ${_hdf5_mpi_components})
|
|
|
|
if ("C" IN_LIST _hdf5_mpi_components)
|
|
set (${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_DIRS@")
|
|
set (${HDF5_PACKAGE_NAME}_MPI_C_LIBRARIES "@MPI_C_LIBRARIES@")
|
|
endif ()
|
|
if ("Fortran" IN_LIST _hdf5_mpi_components)
|
|
set (${HDF5_PACKAGE_NAME}_MPI_Fortran_INCLUDE_PATH "@MPI_Fortran_INCLUDE_DIRS@")
|
|
set (${HDF5_PACKAGE_NAME}_MPI_Fortran_LIBRARIES "@MPI_Fortran_LIBRARIES@")
|
|
endif ()
|
|
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_PARALLEL_FILTERED_WRITES @PARALLEL_FILTERED_WRITES@)
|
|
set (${HDF5_PACKAGE_NAME}_PROVIDES_LARGE_PARALLEL_IO @LARGE_PARALLEL_IO@)
|
|
|
|
unset (_hdf5_mpi_components)
|
|
endif ()
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Resolve dependencies linked with PRIVATE scope
|
|
# - these should be propagated with find_dependency() calls when used by
|
|
# requested components that are static libraries
|
|
#-----------------------------------------------------------------------------
|
|
if (${HDF5_PACKAGE_NAME}_LIB_TYPE STREQUAL "static")
|
|
# Threads
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_THREADS)
|
|
set (THREADS_PREFER_PTHREAD_FLAG ON)
|
|
find_dependency (Threads QUIET REQUIRED)
|
|
endif ()
|
|
|
|
# zlib / zlib-ng
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_ZLIB_SUPPORT AND NOT @ZLIB_USE_EXTERNAL@)
|
|
if (NOT @HDF5_USE_ZLIB_NG@)
|
|
if (@HDF5_MODULE_MODE_ZLIB@)
|
|
# Expect that the default shared library is expected with FindZLIB.cmake
|
|
find_dependency (ZLIB MODULE)
|
|
else ()
|
|
find_dependency (ZLIB NAMES @Z_PACKAGE_NAME@ CONFIG OPTIONAL_COMPONENTS @ZLIB_SEARCH_TYPE@)
|
|
endif ()
|
|
else ()
|
|
# Locate zlib-ng using installed FindZLIBNG.cmake module. If a CMake configuration
|
|
# file is available for zlib-ng, the module will prefer to use it.
|
|
set (_hdf5_cmake_module_path_saved ${CMAKE_MODULE_PATH})
|
|
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/Modules")
|
|
find_dependency (@ZLIBNG_PACKAGE_NAME@ OPTIONAL_COMPONENTS @ZLIBNG_SEARCH_TYPE@)
|
|
set (CMAKE_MODULE_PATH ${_hdf5_cmake_module_path_saved})
|
|
unset (_hdf5_cmake_module_path_saved)
|
|
endif ()
|
|
endif ()
|
|
|
|
# libaec - if szip/libaec support was enabled and libaec was found on the system at build
|
|
# time, locate libaec to propagate the dependency
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_SZIP_SUPPORT AND NOT @SZIP_USE_EXTERNAL@)
|
|
# Locate libaec using installed Findlibaec.cmake module. If a CMake configuration
|
|
# file is available for libaec, the module will prefer to use it.
|
|
set (_hdf5_cmake_module_path_saved ${CMAKE_MODULE_PATH})
|
|
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/Modules")
|
|
find_dependency (@LIBAEC_PACKAGE_NAME@ OPTIONAL_COMPONENTS @LIBAEC_SEARCH_TYPE@)
|
|
set (CMAKE_MODULE_PATH ${_hdf5_cmake_module_path_saved})
|
|
unset (_hdf5_cmake_module_path_saved)
|
|
endif ()
|
|
|
|
# aws-c-s3 library for ROS3 VFD
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_ROS3_VFD)
|
|
find_dependency (aws-c-s3)
|
|
endif ()
|
|
|
|
# OpenSSL
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_PLUGIN_SIGNATURE_VERIFICATION)
|
|
find_dependency (OpenSSL)
|
|
endif ()
|
|
endif ()
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Don't include targets if this file is being picked up by another
|
|
# project which has already built hdf5 as a subproject
|
|
#-----------------------------------------------------------------------------
|
|
if (NOT TARGET "@HDF5_PACKAGE@")
|
|
# If zlib support was enabled and zlib was built from an external source,
|
|
# include the installed CMake targets file so the targets are available
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_ZLIB_SUPPORT AND @ZLIB_USE_EXTERNAL@)
|
|
if (@HDF5_USE_ZLIB_NG@)
|
|
set (_zlib_targets_file_name "${PACKAGE_PREFIX_DIR}/@HDF5_ZLIBNG_INSTALL_CMAKEDIR@/@HDF5_ZLIBNG_INSTALL_NAME@@HDF_PACKAGE_EXT@-targets.cmake")
|
|
else ()
|
|
string (TOUPPER "@HDF5_ZLIB_INSTALL_NAME@" ${HDF5_PACKAGE_NAME}_ZLIB_INSTALL_NAME_UPPER)
|
|
set (_zlib_targets_file_name "${PACKAGE_PREFIX_DIR}/@HDF5_ZLIB_INSTALL_CMAKEDIR@/${${HDF5_PACKAGE_NAME}_ZLIB_INSTALL_NAME_UPPER}@HDF_PACKAGE_EXT@Config.cmake")
|
|
unset (${HDF5_PACKAGE_NAME}_ZLIB_INSTALL_NAME_UPPER)
|
|
|
|
if (@HDF5_USE_ZLIB_STATIC@)
|
|
set (ZLIB_FIND_COMPONENTS "static")
|
|
else ()
|
|
set (ZLIB_FIND_COMPONENTS "shared")
|
|
endif ()
|
|
endif ()
|
|
include ("${_zlib_targets_file_name}" OPTIONAL RESULT_VARIABLE _zlib_loaded)
|
|
unset (ZLIB_FIND_COMPONENTS)
|
|
if (NOT _zlib_loaded)
|
|
if (@HDF5_USE_ZLIB_NG@)
|
|
set (_zlib_name "zlib-ng")
|
|
else ()
|
|
set (_zlib_name "zlib")
|
|
endif ()
|
|
set (${HDF5_PACKAGE_NAME}_FOUND FALSE)
|
|
set (${HDF5_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Couldn't locate ${_zlib_name} targets file ${_zlib_targets_file_name}")
|
|
unset (_zlib_targets_file_name)
|
|
unset (_zlib_name)
|
|
unset (_zlib_loaded)
|
|
return ()
|
|
endif ()
|
|
unset (_zlib_targets_file_name)
|
|
unset (_zlib_loaded)
|
|
endif ()
|
|
# If szip/libaec support was enabled and libaec was built from an external source,
|
|
# include the installed CMake targets file so the targets are available
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_SZIP_SUPPORT AND @SZIP_USE_EXTERNAL@)
|
|
if (@HDF5_USE_LIBAEC_STATIC@)
|
|
set (_libaec_targets_file_name "@PACKAGE_SHARE_INSTALL_DIR@/@LIBAEC_PACKAGE_NAME@@HDF_PACKAGE_EXT@_static-targets.cmake")
|
|
else ()
|
|
set (_libaec_targets_file_name "@PACKAGE_SHARE_INSTALL_DIR@/@LIBAEC_PACKAGE_NAME@@HDF_PACKAGE_EXT@_shared-targets.cmake")
|
|
endif ()
|
|
include ("${_libaec_targets_file_name}" OPTIONAL RESULT_VARIABLE _libaec_loaded)
|
|
if (NOT _libaec_loaded)
|
|
set (${HDF5_PACKAGE_NAME}_FOUND FALSE)
|
|
set (${HDF5_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Couldn't locate libaec targets file ${_libaec_targets_file_name}")
|
|
unset (_libaec_targets_file_name)
|
|
unset (_libaec_loaded)
|
|
return ()
|
|
endif ()
|
|
unset (_libaec_targets_file_name)
|
|
unset (_libaec_loaded)
|
|
endif ()
|
|
include ("@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@-targets.cmake")
|
|
# OPTIONAL: some packages ship HDF5 in such a way that the static and
|
|
# Java targets files may not be available.
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_STATIC_LIBS AND ${HDF5_PACKAGE_NAME}_PROVIDES_SHARED_LIBS)
|
|
include ("@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@_static-targets.cmake" OPTIONAL RESULT_VARIABLE _hdf5_static_loaded)
|
|
if (NOT _hdf5_static_loaded)
|
|
set (${CMAKE_FIND_PACKAGE_NAME}_static_FOUND FALSE)
|
|
endif ()
|
|
unset (_hdf5_static_loaded)
|
|
endif ()
|
|
if (${HDF5_PACKAGE_NAME}_PROVIDES_JAVA)
|
|
include ("@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@_java-targets.cmake" OPTIONAL RESULT_VARIABLE _hdf5_java_loaded)
|
|
if (NOT _hdf5_java_loaded)
|
|
set (${CMAKE_FIND_PACKAGE_NAME}_Java_FOUND FALSE)
|
|
endif ()
|
|
unset (_hdf5_java_loaded)
|
|
endif ()
|
|
endif ()
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Handle all other requested components
|
|
#-----------------------------------------------------------------------------
|
|
set (libtype ${${HDF5_PACKAGE_NAME}_LIB_TYPE})
|
|
foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
set (hdf5_comp2)
|
|
if (comp STREQUAL "C")
|
|
set (hdf5_comp "hdf5")
|
|
elseif (comp STREQUAL "CXX")
|
|
set (hdf5_comp "hdf5_cpp")
|
|
elseif (comp STREQUAL "HL")
|
|
set (hdf5_comp "hdf5_hl")
|
|
elseif (comp STREQUAL "CXX_HL")
|
|
set (hdf5_comp "hdf5_hl_cpp")
|
|
elseif (comp STREQUAL "Java")
|
|
set (hdf5_comp "hdf5_java")
|
|
elseif (comp STREQUAL "Tools")
|
|
set (hdf5_comp "hdf5_tools")
|
|
elseif (comp STREQUAL "Fortran")
|
|
set (hdf5_comp2 "hdf5_f90cstub")
|
|
set (hdf5_comp "hdf5_fortran")
|
|
elseif (comp STREQUAL "Fortran_HL")
|
|
set (hdf5_comp2 "hdf5_hl_f90cstub")
|
|
set (hdf5_comp "hdf5_hl_fortran")
|
|
endif ()
|
|
if (comp STREQUAL "Java")
|
|
list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}" HAVE_COMP)
|
|
else ()
|
|
list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}-${libtype}" HAVE_COMP)
|
|
endif ()
|
|
if (${HAVE_COMP} LESS 0)
|
|
if (comp STREQUAL "Java")
|
|
set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0)
|
|
else ()
|
|
set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 0)
|
|
endif ()
|
|
else ()
|
|
if (hdf5_comp2)
|
|
list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp2}-${libtype}" HAVE_COMP2)
|
|
if (${HAVE_COMP2} LESS 0)
|
|
set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 0)
|
|
else ()
|
|
set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 1)
|
|
string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_${libtype}_LIBRARY COMP_LIBRARY)
|
|
set (${COMP_LIBRARY} ${${COMP_LIBRARY}} @HDF_PACKAGE_NAMESPACE@${hdf5_comp2}-${libtype} @HDF_PACKAGE_NAMESPACE@${hdf5_comp}-${libtype})
|
|
endif ()
|
|
elseif (comp STREQUAL "Java")
|
|
set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1)
|
|
string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY)
|
|
set (${COMP_LIBRARY} ${${COMP_LIBRARY}} @HDF_PACKAGE_NAMESPACE@${hdf5_comp})
|
|
else ()
|
|
set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 1)
|
|
string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_${libtype}_LIBRARY COMP_LIBRARY)
|
|
set (${COMP_LIBRARY} ${${COMP_LIBRARY}} @HDF_PACKAGE_NAMESPACE@${hdf5_comp}-${libtype})
|
|
endif ()
|
|
endif ()
|
|
endforeach ()
|
|
unset (libtype)
|
|
|
|
# Should be last
|
|
check_required_components (${HDF5_PACKAGE_NAME}_${${HDF5_PACKAGE_NAME}_LIB_TYPE})
|