RAPIDS-CMake 基础知识
安装
该rapids-cmake
模块旨在在项目配置阶段获取。下载RAPIDS.cmake
脚本,该脚本负责通过 CMake 的FetchContent获取模块的其余内容。
cmake_minimum_required(...)
if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/<PROJ>_RAPIDS.cmake)
file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-25.04/RAPIDS.cmake
${CMAKE_CURRENT_BINARY_DIR}/<PROJ>_RAPIDS.cmake)
endif()
include(${CMAKE_CURRENT_BINARY_DIR}/<PROJ>_RAPIDS.cmake)
include(rapids-cmake)
include(rapids-cpm)
include(rapids-cuda)
include(rapids-export)
include(rapids-find)
project(...)
用法
rapids-cmake
旨在让项目仅使用其所需的功能子集。为此,rapids-cmake
包括以下主要组件
项目使用rapids-cmake
函数有两种方式。
调用
include(rapids-<component>)
,这将导入该组件常用的函数。通过
include(${rapids-cmake-dir}/<component>/<function_name>.cmake)
独立加载每个函数。
覆盖 RAPIDS.cmake
有时项目或开发者需要验证rapids-cmake
分支。为此,您可以设置变量来控制RAPIDS.cmake
下载哪个仓库,方法如下
# To override the version that is pulled:
set(rapids-cmake-version "<version>")
# To override the GitHub repository:
set(rapids-cmake-repo "<my_fork>")
# To use an exact Git SHA:
set(rapids-cmake-sha "<my_git_sha>")
# To use a Git tag:
set(rapids-cmake-tag "<my_git_tag>")
# To override the repository branch:
set(rapids-cmake-branch "<my_feature_branch>")
# Or to override the entire repository URL (e.g. to use a GitLab repo):
set(rapids-cmake-url "https://gitlab.com/<my_user>/<my_fork>/-/archive/<my_branch>/<my_fork>-<my_branch>.zip")
# To override the usage of fetching the repository without git info
# This only works when specifying
#
# set(rapids-cmake-fetch-via-git "ON")
# set(rapids-cmake-branch "branch-<cal_ver>")
#
# or
# set(rapids-cmake-fetch-via-git "ON")
# set(rapids-cmake-url "https://gitlab.com/<my_user>/<private_fork>/")
# set(rapids-cmake-sha "ABC123")
#
set(rapids-cmake-fetch-via-git "ON")
file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-25.04/RAPIDS.cmake
${CMAKE_CURRENT_BINARY_DIR}/RAPIDS.cmake)
include(${CMAKE_CURRENT_BINARY_DIR}/RAPIDS.cmake)
几点说明
显式定义的
rapids-cmake-url
将始终被使用rapids-cmake-sha
优先于rapids-cmake-tag
rapids-cmake-tag
优先于rapids-cmake-branch
建议始终将
rapids-cmake-version
设置为您修改将拉取的仓库所期望的版本
人们尝试的一种错误方法是修改file(DOWNLOAD)
行以指向自定义的rapids-cmake
分支。这不起作用,因为下载的RAPIDS.cmake
中包含了要克隆的 rapids-cmake 仓库的版本信息。