CMake 预设
CMake 预设 是一种使用两个文件配置和共享 CMake 选项的方式:
CMakePresets.json 用于项目作用域的构建。 此文件可以通过 VCS 共享。
CMakeUserPresets.json 用于开发者自己的本地构建。 此文件不应提交到 VCS。
CMakePresets.json 和 CMakeUserPresets.json 都具有相同的格式,并应位于项目的根目录中。
CMake 配置文件 与 CMake 预设有许多共同设置,也可以通过 VCS 共享。 主要区别在于配置文件引用了 CLion 的 工具链 ,其中包含 CMake 预设中不存在且不需要的信息(如调试器或环境设置)。
预设导入
在打开项目时,CLion 会检测项目根目录下 CMakePresets.json 和 CMakeUserPresets.json 文件中的所有 构建 和 configure 预设。 默认情况下,所有这些预设都会以只读模式自动加载到 CMake 配置文件 中。
要查看已加载的预设,请转到 或使用通知对话框中的 视图 链接:

所有新预设默认情况下都是禁用的,除非您之前已经加载并启用了它们(CLion 会通过名称匹配它们)。
如果 CMakePresets.json 或 CMakeUserPresets.json 文件中不存在之前加载的预设,它们将被移除。

手动加载预设
您还可以为已打开的项目加载预设。
调用 (Ctrl+Shift+A )并搜索 加载 CMake 预设。
CLion 将显示一个弹窗,其中列出了现有的构建预设:

选择预设并按下 Enter。
您可以通过按住 Ctrl 或 Shift 选择多个条目。 CLion 将加载所有选定的预设。
与打开项目的情况类似,您手动加载的预设会以只读模式导入到 CMake 配置文件中。 您可以在 中找到它们。
启用预设配置文件
转到 。
选择所需的配置文件并设置 启用配置文件 复选框:

编辑预设
您可以使用以下两种选项编辑导入的预设:
编辑基于预设的 CMake 配置文件的副本
转到 。
选择所需的配置文件并点击
或按下 Ctrl/⌘ + D :

调整复制的配置文件中的设置:

在编辑器中修改相应的 JSON 文件
打开并开始编辑相应的 json 文件。 CLion 将在您输入时跟踪更改,并在问题视图中通知您任何错误:

当您在编辑器中更改预设文件或在外部修改它时,您将收到建议重新加载更改的通知:

如果您希望 CLion 静默重新加载更改,请点击 启用自动重载。 这将在配置文件设置中设置相应的复选框:

更改工具链
默认情况下,加载的预设链接到默认的 CLion 工具链。
要设置已配置的工具链之一,请修改 configure 预设的供应商特定字段。
例如,使用以下代码切换到名为 Clang10 的工具链:
结果是,Clang10 工具链将被分配给加载的预设:

在 Windows 上,如果您使用的是 MSVC 工具链, configure 预设中的架构和工具集属性也会被提取到 CMake 选项中:

条件支持
CLion 支持 condition 字段,用于在 CMakePresets.json 和 CMakeUserPresets.json 文件中过滤预设。 请注意,仅支持 equals 和 notEquals 类型。
以下是按平台过滤预设的示例:
配置按平台过滤后,相应的预设将仅出现在为其启用的平台的 预设配置文件列表 中。
在 CMake 文档 中了解有关 condition 字段选项的更多信息。
Python 集成
如果您的项目配置了 Python 解释器 ,它也可以传递到 CMake 预设中。 这需要在预设属性中显式设置 enablePythonIntegration 标志。 以下是一个示例:
配置 vendor 字段后,Python 解释器将被传递到相应的 CMake 配置文件中。