CMake预置在visualstudio和visualstudio代码中的集成

CMakePresets.json文件 在cmake3.19和3.20中发布,允许用户指定常见的配置、构建和测试选项,并与其他人共享。我们在Visual Studio中添加了对CMakePresets.json的支持,并为Visual Studio代码添加了CMake工具扩展。现在可以在Visual Studio中、在Visual Studio代码中、在连续集成管道中以及在Windows、Linux和macOS上的CLI中使用相同的CMakePresets.json文件调用CMake。

null

我们的CMake预设集成现在可以在中预览 Visual Studio 2019版本16.10预览版2 CMake工具版本1.7 .

为什么要使用CMake预设?

CMake发布了对 配置预设 在CMake 3.19中。我们的微软团队为 生成预设 测试预设 在CMake 3.20中。我们很高兴采用CMake预置来解决一些与CMake配置和构建相关的常见问题。

  • 在VisualStudio和VisualStudio代码之间无缝移动。 通过采用CMakePresets.json,可以在Visual Studio和Visual Studio代码中使用相同的文件来驱动CMake。这使得团队中的开发人员更容易在visualstudio和visualstudio代码之间进行切换,并在最适合他们需要的开发环境中工作。
  • 始终可以签入特定于项目的信息。 CMake支持两个文件:CMakePresets.json和CMakeUserPresets.json。CMakePresets.json用于保存项目范围的预设,而CMakeUserPresets.json用于开发人员保存自己的本地预设。这确保了特定于项目的信息始终可以签入源代码管理,并使新的团队成员更容易启动和运行。它还使团队更容易跨整个团队同步对其CMake构建的更改。Visual Studio和Visual Studio代码都支持CMakePresets.json和CMakeUserPresets.json。
  • 在visualstudio和visualstudio代码中从CLI复制生成。 由于CMake本身支持CMakePresets.json,因此可以使用相同的CMakePresets.json文件在Visual Studio中、在Visual Studio代码中、在连续集成管道中以及在Windows、Linux和macOS上从CLI调用CMake。从CLI使用CMakePresets.json构建时需要使用cmake3.20或更高版本。
  • 简化开源CMake项目的构建说明。 您可以下拉任何在存储库根目录下具有CMakePresets.json文件的项目,并使用预设中编码的指令在本地构建和测试它。所有可以从命令行传递给CMake或CTest的命令参数都可以在Configure、Build或Test预设中指定。

有关CMake预设的更多信息,请查看我最近的 ACCU会议 在这里,我将演示如何在VisualStudio、CLI和GitHub操作管道中使用CMakePresets.json。您还可以查看 示例CMakePresets.json文件 ,注册 纯虚拟C++ ,或阅读 CMake官方文档 . 下面是有关VisualStudio和VS代码中CMake预设集成的更多信息。

在Visual Studio中创建预设

了解VisualStudio中CMake预设集成的最佳资源是 文档 . VisualStudio中的CMake预设集成仍处于预览阶段。

CMakePresets.json将是CMakeSettings.json的推荐替代方案。Visual Studio永远不会同时读取CMakePresets.json和CMakeSettings.json。可以为中的所有项目启用CMake预设集成 工具>选项>CMake>常规 . 必须关闭并重新打开Visual Studio中的文件夹才能激活集成。

图片[1]-CMake预置在visualstudio和visualstudio代码中的集成-yiteyi-C++库 通过将CMakePresets.json文件添加到打开文件夹的根目录,可以为单个项目启用CMakePresets集成。同样,必须关闭并重新打开文件夹才能激活集成。看到了吗 在Visual Studio 2019中启用CMake预设集成 更多信息。

启用CMake预设集成后,您将在菜单栏上看到三个下拉列表。

图片[2]-CMake预置在visualstudio和visualstudio代码中的集成-yiteyi-C++库

左侧的下拉列表表示活动的 目标系统 . 在这个系统中,将调用CMake来配置和构建项目。此下拉列表列出您的本地计算机,以及 连接管理器 以及VisualStudio可以找到的所有Windows Subsystem for Linux(WSL)安装。

中间的下拉列表表示活动 配置预设 . 这是在调用CMake生成项目生成系统时将使用的配置预设。此下拉列表列出了在CMakePresets.json和CMakeUserPresets.json中定义的、应用于活动应用程序的非隐藏配置预设的联合 目标系统 . 上图中的活动配置预设是忍者调试。

右边的下拉列表表示活动的 生成预设 . 这是在调用CMake生成项目时将使用的生成预设。此下拉列表列出了在CMakePresets.json和CMakeUserPresets.json中定义的、应用于活动 配置预设 . 上图中的活动生成预设是详细生成。查看我们的文档 CMake配置和生成 了解更多。

使用visualstudio,您可以在Windows、WSL和远程系统上编辑、构建和调试CMake目标,只需一个IDE即可。VisualStudio将自动将源代码复制到指定的目标系统,但必须已安装构建工具(CMake、生成器、编译器)、rsync、zip和gdb。看到了吗 创建Linux环境 更多信息。

有关添加预设、编辑预设、运行测试等更多信息,请参阅我们的文档 visualstudio中的CMake预置集成 .

用于Visual Studio代码的CMake工具扩展中的CMake预设

了解CMake工具扩展中的CMake预设集成的最佳资源是 文档 . CMake工具扩展中的CMake预设集成仍在预览中。

CMakePresets.json将是工具包和变体文件的推荐替代方案。CMake工具永远不会同时从CMakePresets.json和kits及variants文件中读取数据。可以通过修改settings.json中CMake.useCMakePresets的值来启用CMake预设集成。

设置

说明

可接受值

默认值

cmake.useCMakePresets 使用CMakePresets.json驱动CMake配置、构建和测试 永远,永远,自动 汽车

汽车 计算结果为 总是 如果活动文件夹的cmake.source目录中有CMakePresets.json。它的计算结果是 从未 如果活动文件夹的cmake.source目录中没有CMakePresets.json文件。将cmake.useCMakePresest设置为 总是 从未 为所有CMake项目显式启用或禁用CMake预设集成。看到了吗 在CMake工具扩展中启用CMake预设 更多信息。

启用CMake预设集成后,可以运行多个新命令。

图片[3]-CMake预置在visualstudio和visualstudio代码中的集成-yiteyi-C++库

使用命令 CMake:选择Configure Preset , CMake:选择构建预设 ,和 CMake:选择测试预设 选择活动预设。您的活动预设将显示在状态栏中。

Image status bar

在上图中, [活动配置预设] 表示激活的配置预设, [活动生成预设] 指示活动的生成预设,以及 [主动测试预设] 指示激活的测试预设。

有关添加预设、编辑预设、运行CMake等更多信息,请参阅上的文档 CMake预置在visualstudio代码中的集成 .

下一步是什么?

CMake预置visualstudio中的集成和visualstudio代码仍在预览中。我们将继续添加到我们的集成中,并在未来版本的VisualStudio和CMake Tools extension for VS代码中处理您的反馈。

在visualstudio中,归档bug或建议功能的最佳方法是使用 发送反馈 IDE右上角的按钮。看到了吗 Visual Studio反馈选项 更多信息。

在VS代码中,提交bug或建议特性的最佳方法是在 扩展的GitHub存储库 .

我们很想了解您的团队是如何采用CMakePresets.json的。如果您有反馈或成功案例要分享,请联系我们 cmake@microsoft.com . 你也可以通过Twitter联系我们( @视觉 ).

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享