rapids_find_generate_module
在 v21.06.00 版本中添加。
为请求的包生成 Find*.cmake 模块
rapids_find_generate_module( <PackageName>
HEADER_NAMES <paths...>
[LIBRARY_NAMES <names...>]
[INCLUDE_SUFFIXES <suffixes...>]
[VERSION <version>]
[NO_CONFIG]
[INITIAL_CODE_BLOCK <code_block_variable>]
[FINAL_CODE_BLOCK <code_block_variable>]
[BUILD_EXPORT_SET <name>]
[INSTALL_EXPORT_SET <name>]
)
为请求的包生成自定义查找模块。这使得项目更容易查找没有现有 FindModule 或安装时未提供 CONFIG 模块的包。
注意
如果您将此用于作为您的 BUILD 或 INSTALL 导出集一部分的模块,则极有可能需要将其也包含在相同的导出集中。
HEADER_NAMES
应提供给
find_path()
以确定包的包含目录的头文件名。如果提供了名称列表,则只需找到其中一个即可将目录视为匹配项。LIBRARY_NAMES
应提供给
find_library()
以确定包的包含目录的库名。如果提供了名称列表,则只需找到其中一个即可将目录视为匹配项。注意
每个不以 lib 开头的条目也将以 lib<name> 进行搜索。
INCLUDE_SUFFIXES
在搜索 HEADER_NAMES 时使用的额外相对子目录。
VERSION
将根据 LIBRARY_NAMES 的内容为搜索的库附加额外的条目。
<name><version>
<name>.<version>
lib<name><version>
lib<name>.<version>
此顺序是为了明确遵循 CMake 搜索版本化库的建议。
“我们建议首先指定未版本化的名称,以便可以在发行版提供的包之前找到本地构建的包。”
NO_CONFIG
提供时,将阻止生成的 Find 模块首先搜索项目随附的 Find Config。
INITIAL_CODE_BLOCK
变量的可选值,该变量包含将在此配置文件第一步执行的代码字符串。
注意:这需要代码块变量而不是内容,以便我们可以正确插入 CMake 代码。
FINAL_CODE_BLOCK
变量的可选值,该变量包含将在配置文件最后一步执行的代码字符串。
注意:这需要代码块变量而不是内容,以便我们可以正确插入 CMake 代码。
BUILD_EXPORT_SET
记录此自定义 FindPackage 模块需要成为我们构建目录导出集的一部分。这意味着如果调用包需要再次搜索 <PackageName>,它将可以使用此模块。
INSTALL_EXPORT_SET
记录此自定义 FindPackage 模块需要成为我们安装导出集的一部分。这意味着它将作为我们包的 CMake 导出集基础架构的一部分进行安装。
结果变量
CMAKE_MODULE_PATH
将被修改为包含 Find<PackageName>.cmake 所在的文件夹。
关于如何正确使用 rapids_find_generate_module()
的示例
...
rapids_find_generate_module(
RDKAFKA
HEADER_NAMES rdkafkacpp.h
LIBRARY_NAMES rdkafka++
BUILD_EXPORT_SET consumer-exports
INSTALL_EXPORT_SET consumer-exports
)
rapids_find_package(
RDKAFKA REQUIRED
BUILD_EXPORT_SET consumer-exports
INSTALL_EXPORT_SET consumer-exports
)