找到OpenMP

查找开放多处理 (OpenMP) 支持。

该模块可用于检测编译器中的 OpenMP 支持。如果编译器支持 OpenMP,则在不同语言的变量中返回使用 OpenMP 支持进行编译所需的标志。如果编译器不需要特殊标志来支持 OpenMP,则变量可以为空。

在 3.5 版本加入: 铿锵支持。

变量

在 3.10 版本加入: 该模块公开组件“C”、“CXX”和“Fortran”。其中每一个都控制着各种语言来搜索 OpenMP 支持。

根据启用的组件,将设置以下变量:

OpenMP_FOUND

指示已找到所有请求语言的 OpenMP 标志的变量。如果未指定任何组件,则如果检测到所有已启用语言的 OpenMP 设置,则为真。

OpenMP_VERSION

在请求的语言中检测到的 OpenMP 标准的最低版本,或者如果未指定组件,则在所有启用的语言中检测到。

该模块将为您的项目中的每种语言设置以下变量,其中 <lang> 是 C、CXX 或 Fortran 之一:

OpenMP_<lang>_FOUND

指示是否检测到 OpenMP 对 <lang> 的支持的变量。

OpenMP_<lang>_FLAGS

<lang> 的 OpenMP 编译器标志,以空格分隔。

OpenMP_<lang>_INCLUDE_DIRS

使用 OpenMP 时必须添加到 <lang> 的标头搜索路径中的目录。

为了与用 <lang> 编写的 OpenMP 代码进行链接,提供了以下变量:

OpenMP_<lang>_LIB_NAMES

;-list 用于 <lang> 的 OpenMP 程序库。

OpenMP_<libname>_LIBRARY

<lang> 中 OpenMP 支持所需的各个库的位置。

OpenMP_<lang>_LIBRARIES

与用 <lang> 编写的 OpenMP 代码链接所需的库列表。

此外,该模块提供 IMPORTED 目标:

OpenMP::OpenMP_<lang>

使用 <lang> 中的 OpenMP 的目标。

专门针对 Fortran,该模块设置了以下变量:

OpenMP_Fortran_HAVE_OMPLIB_HEADER

指示 OpenMP 是否可通过 omp_lib.h 访问的布尔值。

OpenMP_Fortran_HAVE_OMPLIB_MODULE

指示 OpenMP 是否可通过 omp_lib Fortran 模块访问的布尔值。

该模块还将尝试提供 OpenMP 版本变量:

OpenMP_<lang>_SPEC_DATE

在 3.7 版本加入.

<lang> 编译器实现的 OpenMP 规范的日期。

OpenMP_<lang>_VERSION_MAJOR

<lang> 编译器实现的 OpenMP 主要版本。

OpenMP_<lang>_VERSION_MINOR

<lang> 编译器实现的 OpenMP 次要版本。

OpenMP_<lang>_VERSION

<lang> 编译器实现的 OpenMP 版本。

规范日期按照 OpenMP 标准中给出的格式进行格式化:yyyymm 其中 yyyymm 代表 <lang> 编译器实现的 OpenMP 规范的年月。

对于某些编译器,可能需要添加标头搜索路径以查找相关的 OpenMP 标头。该位置可能是特定于语言的。在需要的地方,模块可能会尝试查找位置,但可以通过设置 OpenMP_<lang>_INCLUDE_DIR 缓存变量直接提供。请注意,此变量是模块的_输入_控件。如果项目代码需要知道需要哪些包含目录,则应使用 OpenMP_<lang>_INCLUDE_DIRS _output_ 变量。