FindOpenACC¶
3.10 版本新增。
查找并检测编译器中的 OpenACC 支持
find_package(OpenACC [<version>] [...])
如果编译器支持 OpenACC,则将在不同语言的变量中返回编译 OpenACC 所需的标志。目前,仅支持 NVHPC、PGI、GNU 和 Cray 编译器。
导入的目标¶
此模块提供以下 导入目标
OpenACC::OpenACC_<lang>3.16 版新增。
封装了使用
<lang>中 OpenACC 所需的用法的目标。仅当找到 OpenACC 支持时,此目标才可用。<lang>是 C、CXX 或 Fortran 之一。
结果变量¶
此模块定义了以下变量
OpenACC_FOUND在 3.25 版本中新增。
布尔值,指示已找到至少一种语言的 OpenACC 标志。
该模块将为项目中的每种语言设置以下变量,其中 <lang> 是 C、CXX 或 Fortran 之一。
OpenACC_<lang>_FOUND布尔值,指示是否检测到语言
<lang>的 OpenACC 支持。OpenACC_<lang>_FLAGS用于
<lang>的 OpenACC 编译器标志,用空格分隔。OpenACC_<lang>_OPTIONS3.16 版新增。
用于
<lang>的 OpenACC 编译器标志,作为列表。适用于与 target_compile_options 或 target_link_options 一起使用。
该模块还将尝试提供 OpenACC 版本变量
OpenACC_<lang>_SPEC_DATE<lang>编译器实现的 OpenACC 规范的日期。OpenACC_<lang>_VERSION_MAJOR<lang>编译器实现的 OpenACC 的主版本。OpenACC_<lang>_VERSION_MINOR<lang>编译器实现的 OpenACC 的次版本。OpenACC_<lang>_VERSION<lang>编译器实现的 OpenACC 版本。
规范日期格式为 OpenACC 标准中给出的格式:yyyymm,其中 yyyy 和 mm 分别表示 <lang> 编译器实现的 OpenACC 规范的年份和月份。
输入变量¶
此模块接受以下变量
OpenACC_ACCEL_TARGET=<target>如果设置,将与
OpenACC_<lang>_FLAGS变量一起返回正确的<target>加速器标志集。
示例¶
查找 OpenACC 支持并将导入的目标链接到项目目标
find_package(OpenACC)
target_link_libraries(example PRIVATE OpenACC::OpenACC_C)