Visual Studio中的CMake支持 - 配置模板
[原文发表地址] CMake Support in Visual Studio – Configuration Templates
[原文发表时间] 2018/06/27
Visual Studio 2017 15.8预览版3现已推出,它包含对CMake工具的一些改进。除了一些修复,我们还通过添加配置模板的方法简化了CMakeSettings.json配置文件。
如果你是Visual Studio中的CMake新成员,请查看如何开始使用。
CMake的配置模板
如果之前你曾创建过一个CMakeSettings.json文件来自定义项目的设置,那么你可能知道该文件可能有点令人畏惧。Desktop和Linux工作负载都安装后,默认的CMakeSettings.json文件超过100行。我们从社区收到反馈意见,该文件难以解压缩和理解,因此我们简化了填充默认CMakeSettings.json文件的方式。我们还提供了一种直接通过配置选择器访问和编辑此配置文件的方法。
开始
当你第一次打开CMake文件夹时,我们现在会默认创建一个与当前操作系统匹配的调试配置。这样,你仍然可以启动并运行以定位本地计算机,而无需创建CMakeSettings.json文件。但是,一旦你想要添加或自定义CMake配置列表,就可以比以往更轻松地执行此操作:
单击配置选择下拉列表(F5按钮右侧)中的“管理配置...”将要求你选择你希望调试项目的模板。 Visual Studio会将所选模板添加到在根CMakeLists文件的文件夹中新创建的CMakeSettings.json中。
这包含我们之前支持的所有配置以及添加了一些用于定位MinGW和ARM IoT设备的新配置。一旦你选择模板后,它将会添加到你的CMakeSettings.json文件中。例如我们以“x86-Debug”为例,我们看到它会产生一个非常简短紧凑的CMakeSettings.json文件:
只有17行,这比过去的文件更易于管理。
添加新配置
一旦你创建此文件后,再次点击“管理配置...”按钮将返回CMakeSettings.json文件。但是,这并不意味着你无法向其添加更多模板。想要在创建文件后添加新模板,只需右键单击编辑器上的任意位置,然后选择添加配置:
或者,你可以在解决方案资源管理器中右键单击CMakeSettings.json文件:
新选择的模板将被添加到配置文件的末尾。
自定义配置模板(实验)
除了内置的配置模板,我们还为你添加了一种实验方法来创建自己的模板。在工具>选项> CMake下,现在有一个“CMakeSettings.json模板目录”条目:
你可以将此指向包含一个或多个包含CMake自定义模板的JSON文件的目录。这些文件可以具有任何名称,并且基本上具有与标准CMakeSettings.json文件相同的格式。 “配置”数组将被视为模板,并将显示在模板选择器中。要在模板扇区中设置其描述,只需在配置的JSON中添加“描述”字段即可。
我们很想知道你如何使用它,以及它是否适合你。你的反馈将帮助我们在Visual Studio的未来版本中塑造此功能。
社区报告的问题和其他改进
我们在最新的Visual Studio Preview中修复了一些客户报告的问题,包括与我们的IDE与CTest集成相关的几个问题:
- CMake配置因输出窗口中的堆栈跟踪而失败
- CMake + vcpkg问题
- 测试资源管理器和CTest从不同的目录运行
- C ++快速操作成员函数的创建定义返回未知错误
- CMake +测试:忽略环境变量
- 未在15.6中检测到CMake测试
- CMake:测试资源管理器不会像CTest那样逃避参数
- CMake缓存生成卡在Catch2存储库中
- 测试资源管理器无法正确解释将WILL_FAIL属性设置为TRUE的CTest测试
- CMake查看所有构建的测试不显示所有CTests
- CMake:运行静态代码分析无法检测到c ++ 17
- Visual Studio Build Tools 2017(15.7.1)缺少用于CMake的Visual C ++工具
除了社区报告的问题之外,我们还解决了以下客户影响问题:
- 关闭某些CMake项目时的长时间延迟
- 在不关闭之前打开的项目的情况下打开新的CMake项目不再锁定IDE
- 如果在“.vscode \ settings.json”中定义了过滤器,则CMake项目扫描不再永远等待
- C#CMake项目现在默认为Visual Studio生成器,F5启动托管/混合调试器(实验)
再次感谢所有报道这些问题的人!
除了对CMakeSettings和配置的更改之外,最新版本的CMake工具还包括改进的单文件编译。所有错误和警告现在都出现在错误列表中,而不是仅显示在输出窗口中。
向我们发送反馈
你的反馈是确保我们能够提供最佳CMake体验的关键部分。我们很想知道Visual Studio 2017 Preview如何为你工作。如果你有任何特定于CMake Tools的反馈,请联系cmake@microsoft.com。对于一般问题,请报告问题。