Files
hdf5/config/install/hdf5-config.cmake.in
T
jhendersonHDF 32022649cc Fix various issues in package configuration file (#6617)
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
2026-09-24 11:41:22 -05:00

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})