我有这个CMakePresets.json
:
{
"version": 5,
"configurePresets": [
{
"name": "MSVC-VS-2022-x64",
"displayName": "MSVC-VS-2022-x64",
"description": "Ninja Multi-Config Build",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceParentDir}/${sourceDirName}Build",
"cacheVariables": {
"CMAKE_VS_VERSION_RANGE": "[17.0,18.0)",
"CMAKE_CONFIGURATION_TYPES": "Debug;Release"
}
}
],
"buildPresets": [
{
"name": "Debug",
"displayName": "Debug",
"configurePreset": "MSVC-VS-2022-x64",
"configuration": "Debug"
},
{
"name": "Release",
"displayName": "Release",
"configurePreset": "MSVC-VS-2022-x64",
"configuration": "Release"
}
]
}
我想让我们的开发人员能够将ACTIVE_SUBSETS
具有用户特定值的缓存变量添加A;B;C
到配置预设中MSVC-VS-2022-x64
。
我尝试使用这个CMakeUserPresets.json
:
{
"version": 5,
"configurePresets": [
{
"name": "MSVC-VS-2022-x64",
"cacheVariables": {
"ACTIVE_SUBSETS": "A;B;C"
}
}
]
}
但这显然会创建一个新的配置预设,而不是修改现有的预设。
CMake 错误:无法从 C:/tt/SourceRoot 读取预设:
重复预设:“MSVC-VS-2022-x64”
我CMakeUserPresets.json
需要在配置预设中覆盖或添加什么值?
CMakePresets.json
复制并重命名,然后修改它也是可以的CMakeUserPresets.json
。不幸的是,这两个文件似乎总是被加载。
类似于缓存变量,环境变量和二进制目录也应该能够被覆盖。