什么是 CMake

CMake 是一个跨平台的安装(编译)工具,可以用简单、统一的语句来描述所有平台的安装或编译过程。能够输出不同编译器的 makefile 或 project 文件。 

CMake 的使用 CMakeLists.txt 作为项目组织文件,CMake 并非跨平台编译工具,而是项目构建工具,可以在不同的平台上根据构建参数生成工程项目,例如 Windows 平台下可以构建 ​​Visual Studio 工程​​ 或 ​​NMake 工程​​,可选指定 Visual Studio 的版本;在 Unix 构建 ​​Makefile 工程​​ 。

CMake 能做什么

  • 项目构建
  • 构建复杂项目
  • 构建跨平台项目
  • 项目管理
  • 大型项目相互依赖
  • 项目功能扩展适配
  • 单元测试
  • ctest
  • 持续构建
  • 打包发布
  • cpack

为什么使用 CMake

  • 源代码管理  
    通过编写简单的脚本组织数量众多的项目源代码文件,依赖库和宏定义等,代码文件可根据需要保存和命名,由 CMakeLists.txt 文件组织代码文件关系,尤其是跨项目的公共模块管理。
  • 复杂项目统一设置  
    CMake 具有层级继承关系,子文件夹的 CMakeLists.txt 文件会自动集成上级目录设置的公开属性,所有需要统一管理的引用库目录、工程属性设置、宏定义等只需在最顶层的 CMakeLists.txt 文件中设置即可共享设置。
  • 跨平台构建  
    不必担心 Windows 使用 bat 完成项目构建,Unix 使用 shell 作为构建脚本,只需要一套 CMake 脚本兼容不同的平台、编译器。
  • 良好的可扩展性  
    CMake 脚本具有可编程的特点,具备和脚本语言近似的扩展性,开发者可通过简单的编程和逻辑组织,兼容各种复杂的环境和多样的构建参数。
  • 与第三方库集成  
    平时的项目中不可避免的需要引用成熟的第三方库,CMake 允许通过增加
  • 持续集成  
    CMake 支持命令行的方式进行调用,持续集成的平台只需要安装部署 CMake 环境,批处理、shell、python 等脚本执行简单的命令构建工程进行编译,为持续集成打下良好的基础。
  • 开源项目构建工具  
    众多知名的跨平台开源项目使用 CMake 作为源码构建工具,例如: cURL, OGRE, OpenCV, LLVM and Clang, Qt, ZeroMQ 等。  大神都在用的工具和代码库必有过人之处,更何况众多优秀开源作品的共同选择。

如何下载部署 CMake

安装部署

访问 ​​CMake官网​​ ,在 ​​下载页面​​ 选择对应平台安装包,下载安装。

Windows

  • 下载安装包 
    在 Windows 系统下安装 CMake,建议下载 ​​*.msi​​ 格式的安装包,搜索页面,寻找关键字 ​​win64-x64.msi​​ 的下载链接(​​cmake-3.15.0-rc2-win64-x64.msi​​),点击下载。
  • 安装 
    双击运行下载后的安装包,按照安装工具的提示安装到计算机指定目录。
  • 安装成功 
    启动命令行提示符(​​CMD​​),输入 ​​cmake --version​​ 确认 CMake 安装成功,并正确设置环境变量,安装成功会输出安装 CMake 的版本信息。C:\WINDOWS\system32>cmake –version 
    cmake version 3.15.0  CMake suite maintained and supported by Kitware (​​kitware.com/cmake​​).

Unix

  • 下载源码 
    在页面中搜索 ​​*.tar.gz​​ 后缀的压缩包(​​cmake-3.15.0-rc2.tar.gz​​),点击下载。
  • 解压源码 
    在 Unix 环境下将源码解压释放到当前目录,并切换到源码目录。tar xvf cmake-3.15.0-rc2.tar.gz 
    cd cmake-3.15.0-rc2
  • 编译源码./configure  make
  1. 执行 ./configure,对当前的环境进行检查,判断环境已安装的代码库,生成构建所需的配置文件,为代码编译做准备。
  2. make 编译源代码。
  • 源码安装sudo make install安装需要将文件拷贝到根目录,需要相应的文件读写权限(sudo)。
  • 安装成功 
    启动终端,输入 ​​cmake --version​​ 确认 CMake 安装成功,并正确设置环境变量,安装成功会输出安装 CMake 的版本信息。

MacOS

CMake 支持的编译器

安装成功后,可以在终端输入 ​​cmake -h​​ 查看 CMake 支持的编译器及工具的参数说明。

  • Visual Studio(各版本)
  • NMake Makefiles
  • Borland Makefiles
  • Unix Makefiles
  • CodeBlocks (MinGW/NMake/Unix Makefiles)
  • CodeLite (MinGW/NMake/Unix Makefiles)
  • Eclipse CDT4 (MinGW/NMake/Unix Makefiles)
  • Kate (MinGW/NMake/Unix Makefiles)
  • Sublime (MinGW/NMake/Unix Makefiles)

学习路径

  1. 入门教程。学习简要教程了解 CMake 的基本使用方法。
  2. CMake 变量和基础语法。练习掌握 CMake 变量的声明与常用语法使用。
  3. CMake 高级语法。使用 CMake 编写宏和函数实现灵活易扩展的项目设置。
  4. 编译选项。结合不同平台编译器的编译选项,使用 CMake 提供的变量和工具进行设置。