在Visual Studio中的CMake支持 - 目标视图,单个文件编译和缓存生成设置

[原文发表时间] 2018/4/9

[原文发表地址] CMake Support in Visual Studio – Targets View, Single File Compilation, and Cache Generation Settings

Visual Studio 2017 15.7预览版本3现已发布,其中包括对CMake工具的一些改进。最新的预览版本在如何显示,构建和管理CMake项目上比以往更加好控制。

请下载预览版本并查看最新的CMake功能,例如目标视图,单个文件编译以及对项目配置的更多控制。与往常一样,我们很乐意听到你的反馈。

如果你是Visual Studio中兼容的CMake的初使用者,请查看如何开始

CMake目标视图

Visual Studio的最新预览版本提供了一个新方法来查看你的CMake项目源和结构。当你在Visual Studio中打开一个CMake项目时,你会在解决方案资源管理器中看到项目的磁盘布局。根据你的项目组织方式,这个基于磁盘的视图可能不能很好地反映你的CMake项目的实际结构情况。如果你的项目包含文件夹之外的文件,或者根据活动配置有条件地包含文件,则基于磁盘的视图尤其不利于观察。

新添加的目标视图允许你在解决方案资源管理器中可视化CMake项目的结构。在这个视图中,源代码是在单个CMake目标和项目下被组织的。你可以通过在解决方案资源管理器中通过右键单击来构建和调试单个目标。你还可以在参考节点下看到目标之间的联系和依赖关系。你还可以有更多的选项来自定义目标和源代码的显示结构----请参阅下面的组织目标和源代码。

你可以通过单击解决方案资源管理器中的视图下拉菜单来显示目标视图:

如果你之前用过CMake生成的项目和解决方案,那么你应该感到很熟悉。这儿有一个顶级项目节点,CMake的Visual Studio生成器将生成一个解决方案,并且每个CMake目标都会和它的源代码下显示在此项目下。CMake生成器将为每个目标创建单独的MSBuild项目。但有一点需要记住,尽管视图很相似,但没有创建MSBuild项目或解决方案。该视图直接由CMake文件的内容驱动。

组织目标和代码源

你还可以控制目标和源代码的组织。可以通过启用use_folders并设置目标的文件夹属性来组织目标。源代码可以通过使用source_groups在目标下进行组织。这些指令适用于所有CMake IDE生成器(包括Visual Studio生成器),因此如果你已经设置了它们,它们就可以使用目标视图。

目标视图显示了CMake项目结构的表示。目前,你无法从目标视图中操作此结构。要修改项目的结构,你需要手动修改项目的CMake列表文件。

CMake项目的单个文件编辑

你现在可以像创建MSBuild项目一样构建属于CMake项目的单个文件。右键单击解决方案资源管理器中的任何源文件,然后选择“编译”或通过主CMake菜单来编辑在编辑器中打开的源文件:

CMake缓存生成设置

默认情况下,当你第一次打开一个CMake项目时,Visual Studio会自动为你的CMake项目选择配置并生成缓存。 这使得IDE可以提供丰富的编辑,构建和调试体验,通常不需要额外的配置。但是,我们知道这中设置并不是对所有项目都是方便的,所以我们现在提供新的设置来控制CMake项目缓存的生成:

我们建议使用默认设置,但如果你通常需要额外配置的项目,或者想要更多地控制Visual Studio生成CMake项目缓存的方式和时间,则可能需要更改此设置。如果禁用自动生成缓存,Visual Studio会提醒你在编辑属于CMake项目的代码之前生成:

发送反馈

你的反馈是确保我们能够提供最佳CMake体验的关键部分。我们很想知道Visual Studio 2017 Preview如何为你工作。如果你有任何特定于CMake Tools的反馈,请联系cmake@microsoft.com。对于一般问题,请报告问题