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_SET 和 INSTALL_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 )