什么是 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- 执行 ./configure,对当前的环境进行检查,判断环境已安装的代码库,生成构建所需的配置文件,为代码编译做准备。
- make 编译源代码。
- 源码安装sudo make install安装需要将文件拷贝到根目录,需要相应的文件读写权限(sudo)。
- 安装成功
启动终端,输入cmake --version
确认 CMake 安装成功,并正确设置环境变量,安装成功会输出安装 CMake 的版本信息。
MacOS
- 下载安装包
选择*.dmg
的下载链接(cmake-3.15.0-rc2-Darwin-x86_64.dmg),点击下载。 - 安装
双击运行 cmake-3.15.0-rc2-Darwin-x86_64.dmg 进行安装。 - 安装成功
启动终端,输入cmake --version
确认 CMake 安装成功,并正确设置环境变量,安装成功会输出安装 CMake 的版本信息。
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)
学习路径
- 入门教程。学习简要教程了解 CMake 的基本使用方法。
- CMake 变量和基础语法。练习掌握 CMake 变量的声明与常用语法使用。
- CMake 高级语法。使用 CMake 编写宏和函数实现灵活易扩展的项目设置。
- 编译选项。结合不同平台编译器的编译选项,使用 CMake 提供的变量和工具进行设置。