FindHDF5

查找分层数据格式 (HDF5),一种用于读写自我描述数组数据的库。

此模块调用应与 HDF5 一起安装的 HDF5 包装器编译器。根据 HDF5 配置,包装器编译器称为 h5cch5pcc。如果成功,该模块会调用带有显示自变量的编译器,以查看在编译 HDF5 客户端应用程序时使用哪些标志。

该模块可以选择接受 COMPONENTS 自变量。如果没有指定 COMPONENTS,则查找模块会默认仅查找 HDF5 C 库。如果指定了一个或多个 COMPONENTS,该模块将尝试查找指定组件的语言绑定。有效组件为 CCXXFortranHLHL 指的是 C 和 Fortran 的“高级”HDF5 函数。如果未给出 COMPONENTS 自变量,该模块会尝试仅查找 C 绑定。例如,要使用 Fortran HDF5 和 HDF5-HL 函数,请执行: find_package(HDF5 COMPONENTS Fortran HL)

此模块将读取变量 HDF5_USE_STATIC_LIBRARIES 以确定是否首选对 HDF5 及其所有依赖项的静态链接而不是动态链接。要使用此功能,请确保在调用 find_package 之前设置 HDF5_USE_STATIC_LIBRARIES 变量。

在版本 3.10 中添加: 支持 Windows 上的 HDF5_USE_STATIC_LIBRARIES

序列和并行 HDF5 包装器均被考虑,并且将使用第一个包含其中一个包装器的目录。如果两个都出现在同一目录中,则优先选择序列版本。可以通过将变量 HDF5_PREFER_PARALLEL 设置为 TRUE 来反转此行为。

除了查找编译 HDF5 客户端应用程序所需的包含和库之外,该模块还致力于找到 HDF5 发行版中可能对回归测试有用的工具。

结果变量

此模块将在你的项目中设置以下变量

HDF5_FOUND

在系统上找到了 HDF5

HDF5_VERSION

在版本 3.3 中添加: HDF5 库版本

HDF5_INCLUDE_DIRS

HDF5 头文件的位置

HDF5_DEFINITIONS

HDF5 所需的编译器定义

HDF5_LIBRARIES

所有请求绑定的所需库

HDF5_HL_LIBRARIES

如果启用了 HL 组件,所有绑定对于 HDF5 高级 API 均必需的库

可用的组件有:C CXX FortranHL。对于每个启用的语言绑定,将会定义一个对应的 HDF5_${LANG}_LIBRARIES 变量,并且可能 HDF5_${LANG}_DEFINITIONS,如果启用了 HL 组件,那么还将定义一个 HDF5_${LANG}_HL_LIBRARIES。启用了所有组件后,将定义以下变量

HDF5_C_DEFINITIONS

HDF5 C 绑定的必需编译器定义

HDF5_CXX_DEFINITIONS

HDF5 C++ 绑定的必需编译器定义

HDF5_Fortran_DEFINITIONS

HDF5 Fortran 绑定的必需编译器定义

HDF5_C_INCLUDE_DIRS

HDF5 C 绑定的必需包含目录

HDF5_CXX_INCLUDE_DIRS

HDF5 C++ 绑定的必需包含目录

HDF5_Fortran_INCLUDE_DIRS

HDF5 Fortran 绑定的必需包含目录

HDF5_C_LIBRARIES

HDF5 C 绑定的必需库

HDF5_CXX_LIBRARIES

HDF5 C++ 绑定的必需库

HDF5_Fortran_LIBRARIES

HDF5 Fortran 绑定的必需库

HDF5_C_HL_LIBRARIES

高级 C 绑定的必需库

HDF5_CXX_HL_LIBRARIES

高级 C++ 绑定的必需库

HDF5_Fortran_HL_LIBRARIES

高级 Fortran 绑定的必需库。

HDF5_IS_PARALLEL

HDF5 库具有并行 IO 支持

HDF5_C_COMPILER_EXECUTABLE

HDF5 C 封装编译器的路径

HDF5_CXX_COMPILER_EXECUTABLE

HDF5 C++ 封装编译器的路径

HDF5_Fortran_COMPILER_EXECUTABLE

HDF5 Fortran 封装编译器的路径

HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE

同时也是 HDF5 封装的主 C 编译器的路径

HDF5_CXX_COMPILER_EXECUTABLE_NO_INTERROGATE

同时也是 HDF5 封装的主 C++ 编译器的路径

HDF5_Fortran_COMPILER_EXECUTABLE_NO_INTERROGATE

同时也是 HDF5 封装的主 Fortran 编译器的路径

HDF5_DIFF_EXECUTABLE

HDF5 数据集对比工具的路径

启用了所有组件后,将定义以下目标

HDF5::HDF5

所有检测到的 HDF5_LIBRARIES

hdf5::hdf5

C 库。

hdf5::hdf5_cpp

C++ 库。

hdf5::hdf5_fortran

Fortran 库。

hdf5::hdf5_hl

高级 C 库。

hdf5::hdf5_hl_cpp

高级 C++ 库。

hdf5::hdf5_hl_fortran

高级 Fortran 库。

hdf5::h5diff

h5diff 可执行文件。

提示

以下变量可以设置,以指导搜索 HDF5 库并包含

HDF5_PREFER_PARALLEL

在 3.4 版本中添加。

设置为 true 以优先选择并行的 HDF5(默认情况下优先考虑串行)

HDF5_FIND_DEBUG

在 3.9 版本中添加。

设置为 true 以获取额外的调试输出。

HDF5_NO_FIND_PACKAGE_CONFIG_FILE

在 3.8 版本中添加。

设置为 true 以跳过尝试查找 hdf5-config.cmake