rapids_find_package

v21.06.00 版本新增。

允许项目通过 find_package 查找依赖项,并内置对这些依赖项的跟踪,以便正确支持导出。

rapids_find_package(<PackageName>
                    [ all normal find_package options ]
                    [COMPONENTS <components...>]
                    [GLOBAL_TARGETS <targets...>]
                    [BUILD_EXPORT_SET <name>]
                    [INSTALL_EXPORT_SET <name>]
                    [ <FIND_ARGS>
                      all normal find_package options ]
                    )

调用 find_package,并将其与列出的构建和安装导出集关联,以便正确生成导出。将 find_package 设置的所有变量传播到调用者的作用域。

由于 CMake 目标的可见性在本地构建的目标和导入的目标之间存在差异,rapids_find_package() 将导入的目标提升为全局目标,以确保用户具有一致性。在 GLOBAL_TARGETS 中列出您的项目使用的所有目标。

PackageName

要查找的包的名称。

COMPONENTS

v22.10.00 版本新增。

此包需要找到的必需组件列表,只有找到这些组件才能认为此包有效。

GLOBAL_TARGETS

此包中的哪些目标应设为全局。此信息将传播到任何关联的导出集。

BUILD_EXPORT_SET

记录 find_dependency(<PackageName>) 调用需要作为我们的构建目录导出集的一部分发生。

INSTALL_EXPORT_SET

记录 find_dependency(<PackageName>) 调用需要作为我们的安装目录导出集的一部分发生。

FIND_ARGS

在需要传递给 find_package 的任何额外参数之前提供的必需占位符。

注意

如果您正在查找的项目/包没有现有的 CMake Find 模块,请考虑使用 rapids_find_generate_module()

rapids_find_package() 函数支持两种调用模式。

1. 当 find_package 的所有参数在前,后面是 BUILD_EXPORT_SETINSTALL_EXPORT_SET 等 rapids 参数在后时。以下是此调用的示例:

rapids_find_package(ZLIB 1.2 REQUIRED
  GLOBAL_TARGETS ZLIB::ZLIB
  INSTALL_EXPORT_SET my-export-set
  BUILD_EXPORT_SET my-export-set
)

2. 当 rapids 参数在前,并且在这种情况下必须紧跟 FIND_ARGS 关键字时。这确保了参数能正确传播到底层的 find_package。以下是此调用的示例:

rapids_find_package(ZLIB
  GLOBAL_TARGETS ZLIB::ZLIB
  INSTALL_EXPORT_SET my-export-set
  BUILD_EXPORT_SET my-export-set
  FIND_ARGS 1.2 REQUIRED
)