鞋子
在Visual Studio 2019 v16.5 Preview 2中,CMake工程的日常操作从来没有如此简单过。在这一版本中,你可以在IDE中轻松在CMake工程中添加,删除和重命名源文件和目标,而不需要手动的修改CMake脚本。当你在[Solution Explorer]中添加或者删除文件时,Visual Studio将自动的帮你编辑CMake工程。你也可以在[Solution Explorer]的[Targets View]中方便的添加,删除和重命名工程目标。
有图有真相
![92e3c98ef6a96b404762707a7aba986f.png](https://i-blog.csdnimg.cn/blog_migrate/22b41c53111868b1917ea24a0b67b868.jpeg)
C/C++源文件
Visual Studio现在可以追踪到C/C++源文件从[Solution Explorer]中的添加,删除和重命名操作,并自动的修改底层的CMake工程脚本。从Visual Studio 2019 v16.5 Preview 2版本开始,这一特性就被默认启用,当然,你也可以配置Visual Studio不自动修改CMake脚本。具体配置路径在[Tools > Options > CMake]的[Enable automatic CMake script modification…]勾选框。如下图所示:
![4d3b2cd5df44af47691b22c9baaa87d1.png](https://i-blog.csdnimg.cn/blog_migrate/f826114ff79307cf19c36d01b60f373d.jpeg)
目标和引用
[CMake Targets View]提供了更多的可用功能。在这个视图中,除了可以添加和删除文件之外,还可以添加,重命名和删除目标。你可以在[Solution Explorer]的下拉菜单中打开[CMake Targets View]视图,如下图所示:
![b85191d4c6a554aa39c7263482a5dabd.png](https://i-blog.csdnimg.cn/blog_migrate/ed2764f49e42bf6a32756ab22dce0c58.jpeg)
如果你之前玩过基于CMake生成的解决方案,则你会觉得这个视图非常熟悉。但和CMake生成的解决方案不同的是,你可以在IDE中直接修改CMake工程,Visual Studio可以自动在后台修改底层CMake脚本。目前Visual StudioVisual Studio支持如下的CMake工程操作:
1. 在一个目标中添加,删除,重命名源文件
![b3d64fd8a7c305b54c92dfb56599317e.png](https://i-blog.csdnimg.cn/blog_migrate/225cc749ee43994e0c47639feaa23c70.jpeg)
2. 在CMake工程中添加,删除,重命名目标
![84469a8520e75563c263b48df9d1e991.png](https://i-blog.csdnimg.cn/blog_migrate/7502a1ccac0095be1883107014c8699c.jpeg)
![e9d11efea7359ede84472bca098c78b5.png](https://i-blog.csdnimg.cn/blog_migrate/76b73b6750e87e48645b79e58adf0180.jpeg)
3. 查看和创建不同目标之间的引用
![8462d42b4c1faf146c8cfa79e8fc7846.png](https://i-blog.csdnimg.cn/blog_migrate/212784a83ad8ca86c7cd76127bc14660.jpeg)
![cff1e24ae7b7c9872ce936d053359d72.png](https://i-blog.csdnimg.cn/blog_migrate/ac4e94078570b385100b47457f55b5eb.jpeg)
解决歧义
在某些情况下,在想一个CMake工程中添加一个源文件时,可能有多个地方都满足添加的条件,当发生这种歧义的情况时,Visual Studio会弹出提示询问是否需要执行操作并显示一个推荐修改的预览,如下图所示:
![5ece5aeb06b189eaac198e749dd7d861.png](https://i-blog.csdnimg.cn/blog_migrate/3f9dfbb92cef9cb614883a04d8fb1db9.jpeg)
总结
为什么VS团队会不遗余力的在Visual Studio提供CMake的支持,我想:可能是想对Linux开发生态进行一些渗透吧。