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;
}
可操作的列表现在可在解决方案浏览中通过点击右键使用:构建、清除、安装和调试.