Visual Studio 现已支持 CMake

Visual C++ 团队在他们的官方博客上宣布 Visual Studio 现已支持 CMake。

什么是CMake?

CMake 是一个跨平台的开源工具,通过抽象本地构建环境和编译器以管理建立跨多平台程序。CMake解析一个CMake脚本,作者在一个选择好的构建环境中创造并生成一个构建计划。(例如在Visual studio 项目, make 脚本, Xcode 项目中等等)

CMake是一个跨平台的makefile生成工具,主要用于C和C++编程。在各种操作系统中,有很多工具可以用于编译C和C++代码,每种工具都有自己的makefile和项目文件格式。举个例子,Windows上的项目可能会使用Visual Studio的项目文件,而Linux项目则会使用GNU makefile。CMake提供了一种语言,开发者可以用它来定义项目的结构以及各种必要的配置步骤,它是跨平台的。CMake工具能处理这些代码,根据程序的目标平台,生成对应的makefile或项目文件。

Visual Studio 对于 CMake 的支持

他们称所做的两个举措在2016年初已见雏形,并标志着这是他们计划中的一个转折点。

第一个举措是,在CMake社区(由CMake-server prototype的作者Stephen Kelly 创办用于为CMake提高工具故事)互动,这开始在CMake社区和我们团队内部产生一些有趣的谈话,有人戏称这是CMake和IDE缺失的环节。

第二个举措是,一项Visual Studio措施(“打开文件夹”)旨在使开发者不使用已存在的VS解决方案和C++项目基础设施而实现内部inner循环loop(编辑—构建—调试经验),允许非MSBuild C++ 代码库能在Visual Studio中加载。

博客里说到他们现在已经可以提供一个坚实的CMake与VS整合了,有如下的特性:

为每个目标枚举CMake的对象和文件

为CMake对象检测输出

为文件收集编译器的开关,包括默认的系统路径

配置,构建和安装CMake脚本

检测CMakeLists.txt中的变化和依赖,并且自动重新配置

全部都不需要一个专用的CMake生成器

例子

CMakeLists.txt

cmake_minimum_required (VERSION 3.6)
project (hello-world)

add_executable(hello-world hello.cpp)

install(TARGETS hello-world DESTINATION bin)

Hello.cpp

#include <iostream>
#include <Windows.h>

int main(int argc, char* argv[])
{
    std::cout << "Hello" << std::endl;
}

可操作的列表现在可在解决方案浏览中通过点击右键使用:构建、清除、安装和调试.

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-28 02:34:13

Visual Studio 现已支持 CMake的相关文章

让Paste as Visual Studio Code支持Visual Studio 2010粘贴的中文--自己动手丰衣足食

Paste as Visual Studio Code 是Windows Live writer上很好的插件,我们许多人都用它写blog.代码就可以从Visual Studio直接粘贴到博文中,并以彩色显示.我们很需要它.可是官方的版本不支持中文.如果代码里有中文字符,从Visual Studio2010粘贴中文到Live writer,发现代码的中文都变成了乱码,或者有些字丢失了.开始不明白是什么原因,就琢磨了一下.下面把步骤写一下,供需要的同仁参考. 1. 解出其源代码   找到该插件的DL

Visual Studio Code 支持 iOS Web 应用调试

微软JavaScript Diagnostics项目经理Kenneth Auchenberg在一篇文章中写道,有一个新的Visual Studio Code扩展,允许开发人员直接在他们的Mac和Windows编辑器上调试在iOS设备上运行的JavaScript Web应用和网站. Auchenberg解释说,以前,调试iOS Web应用需要在Mac上运行Safari Web查看器,或者使用一个专用的跨浏览器兼容性检查器,如BrowserStack.新的Visual Studio Code扩展"i

让你的Visual Studio 2010 支持HTML5 和 CSS3

现在的热门话题之一是HTML5 和 CSS3.好的, 它们都很时髦,它们也必然会影响网络开发的未来. 让我们尝尝鲜,花点时间安装设置一下,尽快让Visual Studio2010支持HTML5 和 CSS3 吧. 首先到微软网站上下载 Visual Studio 2010 SP1.双击开始执行VS10sp1-KB983509.exe, 然后等待补丁的下载安装完成. – 由于Visual Studio 2010 一开始并没有支持HTML5, 但是在SP1包中,微软开始加入HTML5的规范. HTM

让Visual Studio 也支持JS代码折叠 [ Visual Studio | #region | #endregion ]

前言       Visual Studio的代码折叠功能非常好用,#region #endregion 这个词连搜狗的词库里面都出现了(不含'#'号),可见使用频率很高,但是他不支持js的代码折叠 : ( 最近Ext用得比较多,一写就是上百行JS代码,非常不方便,想着自己写个扩展或插件什么的,意外搜到了下面的文章,已经用宏来实现了,本文可以理解为该文的简单译本,注意宏代码部分我有所改动 : )   文章       1.      Using #region Directive With Ja

让Visual Studio 也支持JS代码折叠 —— 续 [ Visual Studio | Js | ScriptOutline | SmallOutline ]

前言       上文让JS代码折叠的功能能用了,本文将对代码继续改进以期更好用.更实用,随后有介绍Visual Studio JS方面的几个插件.   文章       1.      VS2003折叠代码的Micro       2.      MSDN       3.      Document Outline for Client Script in Visual Studio 2005   正文       一.继续上文改造,主要是支持region 后面跟注释和显示注释 1.1 效果

简介Gulp, Grunt, Bower, 和 Npm 对Visual Studio的支持

[原文发表地址]Introducing Gulp, Grunt, Bower, and npm support for Visual Studio Web 开发,特别是前端 Web 开发,正迅速变得像传统的后端开发一样复杂和精密.大多数项目不仅仅是通过 FTP上传一些 JS 和 CSS 文件.而现在的前端生成过程,可以囊括SASS 和LESS扩展.CSS/JS的压缩包.JSHint 或 JSLint的运行时 .或者更多.这些生成任务和进程都和像Gulp和Grunt这样的工具一起协调工作.此外,类

Visual Studio Code 支持 Java 语言

Java语言服务器是Java语言服务器协议的实现.如果你还记得的话,语言服务器协议为编辑和IDEs与语言智能供应商的整合提供了一个通用的方式.通过设计,所有的语言工具都可以奇迹地发生在Java语言服务器上,并且能够为工具提供相同水平的智能来支持协议.事实上,我们正在与Eclipse Che这类的社区一起努力,以使这个服务器也能够支持他们的工具. 截止至9月16日,即上星期五,我们把Java语言发行到了Visual Studio Code 市场.最初的版本有一个合适的特征列表会令Java开发者对V

一起谈.NET技术,让你的Visual Studio 2010 支持HTML5 和 CSS3

现在的热门话题之一是HTML5 和 CSS3.好的, 它们都很时髦,它们也必然会影响网络开发的未来. 让我们尝尝鲜,花点时间安装设置一下,尽快让Visual Studio2010支持HTML5 和 CSS3 吧. 首先到微软网站上下载 Visual Studio 2010 SP1.双击开始执行VS10sp1-KB983509.exe, 然后等待补丁的下载安装完成. – 由于Visual Studio 2010 一开始并没有支持HTML5, 但是在SP1包中,微软开始加入HTML5的规范. HTM

让Visual Studio 也支持JS代码折叠

有两种方法,第一种是设置宏,第二种是软件. 1:宏   - - - 前言       Visual Studio的代码折叠功能非常好用,#region #endregion 这个词连搜狗的词库里面都出现了(不含'#'号),可见使用频率很高,但是他不支持js的代码折叠 : ( 最近Ext用得比较多,一写就是上百行JS代码,非常不方便,想着自己写个扩展或插件什么的,意外搜到了下面的文章,已经用宏来实现了,本文可以理解为该文的简单译本,注意宏代码部分我有所改动 : ) 文章       1.