第一章:简介

Posted by lili on

无论是经验丰富的开发者还是刚刚步入软件职业的人,都无法避免熟悉一系列工具的过程,以将项目的源代码转化为最终用户实际可用的产品。编译器、链接器、测试框架、打包系统等都对部署高质量、健壮软件的复杂性产生影响。虽然一些平台拥有占主导地位的集成开发环境(如Xcode和Visual Studio),简化了某些方面的操作,但需要支持多个平台的项目并不总是能够利用它们的功能。必须支持多个平台会增加更多的复杂性,可能会影响从可用工具集到不同的功能和限制强制执行的方方面面。一个典型的开发者在试图掌握整个局面时可能会有些难以保持理智。

幸运的是,有一些工具可以使这个过程变得更加可管理。CMake就是这样一种工具,或者更准确地说,CMake是一套涵盖从建立构建到生成准备分发的工具。它不仅覆盖了整个过程,还支持广泛的平台、工具和编程语言。在使用CMake时,理解它对世界的看法是有帮助的。粗略地说,根据CMake的观点,从开始到结束的过程大致如下:

第一阶段涉及获取通用项目描述并生成适用于开发者常用构建工具(例如make、Xcode、Visual Studio等)的特定平台项目文件。虽然这个设置阶段是CMake最为人所知的功能,但CMake工具套件还包括CTest和CPack,分别用于管理后续的测试和打包阶段。从开始到结束的整个过程可以由CMake自身驱动,测试和打包步骤只需作为构建中的附加目标即可使用。甚至构建工具也可以由CMake调用。

在深入使用CMake之前,开发者首先需要确保在其系统上安装了CMake。一些平台可能已经预装了CMake(例如,大多数Linux发行版通过软件包管理器提供CMake),但这些版本通常相当陈旧。在可能的情况下,建议开发者使用最新版本的CMake。这在为Apple平台开发时尤为重要,因为像Xcode及其SDK这样的工具变化迅速,而应用商店的要求随时间推移而演变。官方的CMake软件包可以下载并解压到开发者机器上的目录,而不会影响系统范围内的CMake安装。鼓励开发者利用这一点,保持相对接近最近稳定的CMake版本。

如今,CMake还配备了相当丰富的参考文档,可从官方CMake网站访问。这一有用的资源对查找各种命令、选项、关键字等非常有帮助,开发者可能会希望将其加为书签以便快速参考。CMake论坛也是一个提供建议的绝佳资源,是在文档未提供足够指导的情况下提出与CMake相关问题的推荐场所。