rapids_cpm_cccl

Added in version v24.02.00.

Allow projects to find or build CCCL via CPM with built-in tracking of these dependencies for correct export support.

Uses the version of CCCL specified in the version file for consistency across all RAPIDS projects.

When BUILD_EXPORT_SET is specified the generated build export set dependency file will automatically call thrust_create_target(CCCL::Thrust FROM_OPTIONS).

When INSTALL_EXPORT_SET is specified the generated install export set dependency file will automatically call 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

Record that a CPMFindPackage() for CCCL is required in our build directory export set.

INSTALL_EXPORT_SET

Record that a find_dependency() for CCCL is required in our install directory export set.

Note

Installation of CCCL will occur if an INSTALL_EXPORT_SET is provided, and CCCL is added to the project via add_subdirectory by CPM.

CPM_ARGS

Any arguments after CPM_ARGS will be forwarded to the underlying CCCL CPMFindPackage`() call

Result Targets

CCCL::CCCL target will be created CCCL::Thrust target will be created CCCL::libcudacxx target will be created CCCL::CUB target will be created libcudacxx::libcudacxx target will be created

Result Variables

CCCL_SOURCE_DIR is set to the path to the source directory of CCCL. CCCL_BINARY_DIR is set to the path to the build directory of CCCL. CCCL_ADDED is set to a true value if CCCL has not been added before. CCCL_VERSION is set to the version of CCCL specified by the versions.json.