查找HDF5¶
Find Hierarchical Data Format (HDF5),一个用于读写自描述数组数据的库。
此模块调用应与“HDF5”一起安装的“HDF5”包装器编译器。根据“HDF5”配置,包装器编译器称为“h5cc”或“h5pcc”。如果成功,该模块将使用 show 参数调用编译器,以查看在编译“HDF5”客户端应用程序时使用了哪些标志。
该模块将选择性地接受 COMPONENTS 参数。如果未指定 COMPONENTS,则查找模块将默认仅查找 HDF5 C 库。如果指定了一个或多个“COMPONENTS”,模块将尝试为指定的组件查找语言绑定。有效的组件是“C”、“CXX”、“Fortran”、“HL”。 HL 指的是 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_DIRSHDF5 头文件的位置
HDF5_DEFINITIONSHDF5 所需的编译器定义
HDF5_LIBRARIES所有请求的绑定所需的库
HDF5_HL_LIBRARIES如果启用了
HL组件,则所有绑定的 HDF5 高级 API 所需的库
可用的组件是:C CXX Fortran 和 HL。对于每个启用的语言绑定,将定义相应的``HDF5_${LANG}_LIBRARIES`` 变量,以及可能的``HDF5_${LANG}_DEFINITIONS``。如果启用 HL 组件,则还将定义 HDF5_${LANG}_HL_LIBRARIES。启用所有组件后,将定义以下变量:
HDF5_C_DEFINITIONSHDF5 C 绑定所需的编译器定义
HDF5_CXX_DEFINITIONSHDF5 C++ 绑定所需的编译器定义
HDF5_Fortran_DEFINITIONSHDF5 Fortran 绑定所需的编译器定义
HDF5_C_INCLUDE_DIRSHDF5 C 绑定所需的包含目录
HDF5_CXX_INCLUDE_DIRSHDF5 C++ 绑定所需的包含目录
HDF5_Fortran_INCLUDE_DIRSHDF5 Fortran 绑定所需的包含目录
HDF5_C_LIBRARIESHDF5 C 绑定所需的库
HDF5_CXX_LIBRARIESHDF5 C++ 绑定所需的库
HDF5_Fortran_LIBRARIESHDF5 Fortran 绑定所需的库
HDF5_C_HL_LIBRARIES高级 C 绑定所需的库
HDF5_CXX_HL_LIBRARIES高级 C++ 绑定所需的库
HDF5_Fortran_HL_LIBRARIES高级 Fortran 绑定所需的库。
HDF5_IS_PARALLELHDF5 库具有并行 IO 支持
HDF5_C_COMPILER_EXECUTABLEHDF5 C 包装器编译器的路径
HDF5_CXX_COMPILER_EXECUTABLEHDF5 C++ 包装器编译器的路径
HDF5_Fortran_COMPILER_EXECUTABLEHDF5 Fortran 包装器编译器的路径
HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE主要 C 编译器的路径,它也是 HDF5 包装器
HDF5_CXX_COMPILER_EXECUTABLE_NO_INTERROGATE主要 C++ 编译器的路径,它也是 HDF5 包装器
HDF5_Fortran_COMPILER_EXECUTABLE_NO_INTERROGATE主要 Fortran 编译器的路径,它也是 HDF5 包装器
HDF5_DIFF_EXECUTABLEHDF5 数据集比较工具的路径
启用所有组件后,将定义以下目标:
HDF5::HDF5所有检测到的``HDF5_LIBRARIES``。
hdf5::hdf5C 库。
hdf5::hdf5_cppC++ 库。
hdf5::hdf5_fortranFortran 库。
hdf5::hdf5_hl高级 C 库。
hdf5::hdf5_hl_cpp高级 C++ 库。
hdf5::hdf5_hl_fortran高级 Fortran 库。
hdf5::h5diffh5diff可执行文件。
提示¶
可以设置以下变量来指导搜索 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。