rapids_cpm_package_override
在版本 v21.10.00 中添加。
覆盖项目的 rapids_cpm_find()
、rapids_cpm_*、CPM 和 FetchContent()
包信息。
rapids_cpm_package_override(<json_file_path>)
允许项目覆盖任何 rapids_cpm_find()
、rapids_cpm_*、CPM 和 FetchContent()
包的默认值。
用户提供的 json 文件必须遵循 versions.json 格式,此格式已在 此处说明 并在下面的示例中展示
{
"packages": {
"Thrust": {
"version": "1.12.0",
"git_url": "https://github.com/NVIDIA/thrust.git",
"git_tag": "${version}",
"git_shallow": true,
"always_download": true,
"exclude_from_all": false
}
}
}
默认情况下,当为项目提供了覆盖时,将不会对该项目进行本地搜索。这样做是为了确保使用请求的修改版本。
如果一个项目列在多个覆盖文件中,则将使用第一个文件中的值,并且对该包的所有后续调用都将被忽略。这种“先记录者胜”的方法用于匹配 FetchContent,并允许父项目覆盖子项目。
在版本 v24.06.00 中添加。
如果指定了变量 RAPIDS_CMAKE_CPM_OVERRIDE_VERSION_FILE
,无论参数如何,它都将在所有对 rapids_cpm_init
的调用中使用。任何现有的 rapids_cpm_init(OVERRIDE
文件将被忽略,所有其他调用都将被视为指定了此文件作为覆盖。
注意
在版本 v25.04.00 中添加:当变量 CPM_<package_name>_SOURCE 存在时,对 package_name 的任何覆盖条目都将被解析但被忽略。
对于 v23.10 和 v25.02 之间的版本(包含两端),变量 CPM_<package_name>_SOURCE 将导致对 package_name 的任何覆盖条目被忽略且不被解析。