CLion教程-CMake 预设
CMake 预设是一种使用两个文件来配置和共享 CMake 选项的方式:
- CMakePresets.json 用于项目范围的构建。这个文件可以通过版本控制系统(VCS)共享。
- CMakeUserPresets.json 用于开发者自己的本地构建。这个文件不应该被提交到 VCS。
CMakePresets.json 和 CMakeUserPresets.json 遵循相同的格式,并且应该放置在项目的根目录中。
CLion 支持版本2-6的预设,并且仅支持configure和build预设。
CMake 配置文件与 CMake 预设有许多共同的设置,并且也可以通过 VCS 共享。主要的区别在于配置文件引用了 CLion 的工具链,这些信息在 CMake 预设中是不存在或不需要的(例如调试器或环境设置)。
预设检测
在打开项目时,CLion 会检测项目根目录下的 CMakePresets.json 和 CMakeUserPresets.json 文件中的所有构建和配置预设,并自动将它们加载到只读模式的专用CMake 配置文件中。
如果您不希望预设被自动转换为 CMake 配置文件,可以在设置中进入 "Advanced Settings" 并取消选中 "Enable CMake Presets integration" 复选框。这也会在下次CMake重新加载或项目重新打开时删除现有的基于预设的配置文件。
要查看已加载的预设,请转到设置 > 构建、执行、部署 > CMake 或使用通知对话框中的 "View" 链接:
- 所有新的预设默认情况下都是禁用的,除非您之前已加载并启用它们(CLion 通过名称匹配)。
- 如果在 CMakePresets.json 或 CMakeUserPresets.json 文件中不存在,所有之前加载的预设都会被删除。
预设加载也会被重置缓存和重新加载以及加载 CMake 项目操作触发。
手动加载预设
您也可以为已经打开的项目手动加载预设。
- 调用 "Help" > "Find Action"(Ctrl + Shift + A)并搜索 "Load CMake Presets"。
- CLion 将显示一个带有现有构建预设列表的弹出窗口。
- 选择预设并按 Enter 键。
您可以通过按住 Ctrl 或 Shift 键来选择多个条目。CLion 将加载所有选定的预设。
- 与打开项目的情况类似,您手动加载的预设会以只读模式导入到 CMake 配置文件中。您可以在设置 > 构建、执行、部署 > CMake 中找到它们。
启用预设配置文件
- 转到设置 > 构建、执行、部署 > CMake。
- 选择所需的配置文件并选中 "Enable profile" 复选框:
要使用已启用的配置文件构建项目,请在配置切换器中选择它,然后点击 或调用可用的构建操作。详见 使用配置文件构建。
编辑预设配置
您有两个选项来编辑导入的预设配置:
- 编辑基于预设的 CMake 配置文件的副本
- 在编辑器中修改相应的 JSON 文件
编辑基于预设的 CMake 配置文件的副本
- 转到设置 > 构建、执行、部署 > CMake。
- 选择所需的配置文件,然后单击 或按下
Ctrl
/⌘
+D
:
- 在复制的配置文件中调整设置:
在编辑器中修改相应的 JSON 文件
- 打开并开始编辑相应的 json 文件。CLion 会在您输入时跟踪更改并在 "问题" 视图中通知您任何错误:
- 当您在编辑器中更改预设文件或在外部修改它时,您将收到一个通知,建议重新加载更改:
- 如果您希望 CLion 在默默地重新加载更改时通知您,可以点击 "Enable Auto-Reload"。这会在配置文件设置中选中相应的复选框:
更改工具链
默认情况下,加载的预设会关联到默认的 CLion 工具链。
要设置一个已经配置好的工具链,请修改配置预设中的供应商特定字段。
例如,使用以下代码切换到名为 Clang10 的工具链:
"vendor": {
"jetbrains.com/clion": {
"toolchain": "Clang10"
}
}
结果是,加载的预设会分配给 Clang10 工具链:
在 Windows 上,如果您使用 MSVC 工具链,来自配置预设的架构和工具集属性也会被获取到 CMake 选项中:
有关 CMake 预设支持的问题和最近计划,请参阅这个任务的子任务:CPP-25018。总的父任务是 CPP-22906。