rapids_cpm_cccl

在 v24.02.00 版本中添加。

允许项目通过 CPM 查找或构建 CCCL,并内置跟踪这些依赖项,以实现正确的导出支持。

使用 版本文件中指定的 CCCL 版本,以保持所有 RAPIDS 项目的一致性。

当指定 BUILD_EXPORT_SET 时,生成的构建导出集依赖项文件将自动调用 thrust_create_target(CCCL::Thrust FROM_OPTIONS)

当指定 INSTALL_EXPORT_SET 时,生成的安装导出集依赖项文件将自动调用 thrust_create_target(CCCL::Thrust FROM_OPTIONS)

rapids_cpm_cccl( [BUILD_EXPORT_SET <export-name>]
                 [INSTALL_EXPORT_SET <export-name>]
                 [<CPM_ARGS> ...])
BUILD_EXPORT_SET

记录在构建目录导出集中需要一个针对 CCCL 的 CPMFindPackage() 调用。

INSTALL_EXPORT_SET

记录在安装目录导出集中需要一个针对 CCCL 的 find_dependency() 调用。

注意

如果提供了 INSTALL_EXPORT_SET,并且通过 CPM 使用 add_subdirectory 将 CCCL 添加到项目中,则会进行 CCCL 的安装。

CPM_ARGS

CPM_ARGS 之后的任何参数都将转发到底层 CCCL CPMFindPackage`() 调用。

结果目标

将创建 CCCL::CCCL 目标 将创建 CCCL::Thrust 目标 将创建 CCCL::libcudacxx 目标 将创建 CCCL::CUB 目标 将创建 libcudacxx::libcudacxx 目标

结果变量

CCCL_SOURCE_DIR 设置为 CCCL 源目录的路径。CCCL_BINARY_DIR 设置为 CCCL 构建目录的路径。CCCL_ADDED 如果 CCCL 之前未添加过,则设置为 true。CCCL_VERSION 设置为 versions.json 指定的 CCCL 版本。