CMake 预设是一种使用两个文件来配置和共享 CMake 选项的方式:

  • CMakePresets.json 用于项目范围的构建。这个文件可以通过版本控制系统(VCS)共享。
  • CMakeUserPresets.json 用于开发者自己的本地构建。这个文件不应该被提交到 VCS。

CMakePresets.jsonCMakeUserPresets.json 遵循相同的格式,并且应该放置在项目的根目录中。

CLion 支持版本2-6的预设,并且仅支持configure和build预设。

CMake 配置文件与 CMake 预设有许多共同的设置,并且也可以通过 VCS 共享。主要的区别在于配置文件引用了 CLion 的工具链,这些信息在 CMake 预设中是不存在或不需要的(例如调试器或环境设置)。

预设检测

在打开项目时,CLion 会检测项目根目录下的 CMakePresets.jsonCMakeUserPresets.json 文件中的所有构建和配置预设,并自动将它们加载到只读模式的专用CMake 配置文件中。

如果您不希望预设被自动转换为 CMake 配置文件,可以在设置中进入 "Advanced Settings" 并取消选中 "Enable CMake Presets integration" 复选框。这也会在下次CMake重新加载或项目重新打开时删除现有的基于预设的配置文件。

要查看已加载的预设,请转到设置 > 构建、执行、部署 > CMake 或使用通知对话框中的 "View" 链接:

1.png

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

预设加载也会被重置缓存和重新加载以及加载 CMake 项目操作触发。

手动加载预设

您也可以为已经打开的项目手动加载预设。

  1. 调用 "Help" > "Find Action"(Ctrl + Shift + A)并搜索 "Load CMake Presets"。
  2. CLion 将显示一个带有现有构建预设列表的弹出窗口。
  3. 选择预设并按 Enter 键。

您可以通过按住 Ctrl 或 Shift 键来选择多个条目。CLion 将加载所有选定的预设。

  1. 与打开项目的情况类似,您手动加载的预设会以只读模式导入到 CMake 配置文件中。您可以在设置 > 构建、执行、部署 > CMake 中找到它们。

启用预设配置文件

  1. 转到设置 > 构建、执行、部署 > CMake。
  2. 选择所需的配置文件并选中 "Enable profile" 复选框:
    3.png

要使用已启用的配置文件构建项目,请在配置切换器中选择它,然后点击 构建按钮 或调用可用的构建操作。详见 使用配置文件构建。

编辑预设配置

您有两个选项来编辑导入的预设配置:

  1. 编辑基于预设的 CMake 配置文件的副本
  2. 在编辑器中修改相应的 JSON 文件

编辑基于预设的 CMake 配置文件的副本

  1. 转到设置 > 构建、执行、部署 > CMake。
  2. 选择所需的配置文件,然后单击 应用操作复制 或按下 Ctrl/ + D
    4.png
  3. 在复制的配置文件中调整设置:
    5.png

在编辑器中修改相应的 JSON 文件

  • 打开并开始编辑相应的 json 文件。CLion 会在您输入时跟踪更改并在 "问题" 视图中通知您任何错误:
    6.png
  • 当您在编辑器中更改预设文件或在外部修改它时,您将收到一个通知,建议重新加载更改:
    7.png
  • 如果您希望 CLion 在默默地重新加载更改时通知您,可以点击 "Enable Auto-Reload"。这会在配置文件设置中选中相应的复选框:

更改工具链

默认情况下,加载的预设会关联到默认的 CLion 工具链。

要设置一个已经配置好的工具链,请修改配置预设中的供应商特定字段。

例如,使用以下代码切换到名为 Clang10 的工具链:

"vendor": {
    "jetbrains.com/clion": {
      "toolchain": "Clang10"
    }
}

结果是,加载的预设会分配给 Clang10 工具链:

8.png

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

9.png

有关 CMake 预设支持的问题和最近计划,请参阅这个任务的子任务:CPP-25018。总的父任务是 CPP-22906。

标签: clion破解, clion破解教程, clion教程, clion基础教程, clion高级教程, clion核心教程, clion免费激活码, clion免费注册码, clion注册码在线生成, clion激活