第三部分:大局观

对于少数幸运的人来说,项目会不需要依赖于任何其他东西。更有可能的情况是,项目需要超越自己的存在,并可与外部进行交互。这可以从两方面说起:

依赖性

项目可能依赖于其他外部提供的文件、库、可执行文件、包等等。

用户

其他项目可能希望使用该项目。一些人可能希望在源代码级别合并它,另一些人可能希望构建一个可用的二进制包。另一种可能是将项目安装在系统的某处。

让项目作为一个可用的独立包让其他项目使用,也会带来对包质量的期望。自动化测试通常是软件交付策略的关键部分,必须易于定义和执行测试,以及报告结果。

CMake工具套件提供了上述所有方面的功能。可以用于查找单个文件、库等的命令,还提供构建在这些命令之上的模块,为依赖关系管理提供更高级别的入口。CTest框架提供了一组丰富的自动化测试功能,而CPack大大简化了以各种格式创建包的过程。本书的这一部分涵盖了这些外部关注的主题,展示了如何最大限度地利用CMake提供的东西,同时也强调了常见的错误和陷阱。

本书的最后一章将读者将讨论如何组织项目。做好这一工作需要对构建级特性,以及项目与其他项目之间的交互方式有所了解。借助前面章节中获得的知识,本文展示了如何构造和定义一个灵活、健壮且易于(开发人员)使用的项目。

Last updated