第8章 超级构建模式

本章的主要内容如下:

  • 使用超级级构建模式
  • 使用超级构建管理依赖项:Ⅰ.Boost库
  • 使用超级构建管理依赖项:Ⅱ.FFTW库
  • 使用超级构建管理依赖项:Ⅲ.Google Test框架
  • 使用超级构建支持项目

每个项目都需要处理依赖关系,使用CMake很容易查询这些依赖关系,是否存在于配置项目中。第3章,展示了如何找到安装在系统上的依赖项,到目前为止我们一直使用这种模式。但是,当不满足依赖关系,我们只能使配置失败,并向用户警告失败的原因。然而,使用CMake可以组织我们的项目,如果在系统上找不到依赖项,就可以自动获取和构建依赖项。本章将介绍和分析ExternalProject.cmakeFetchContent.cmake标准模块,及在超级构建模式中的使用。前者允许在构建时检索项目的依赖项,后者允许我们在配置时检索依赖项(CMake的3.11版本后添加)。使用超级构建模式,我们可以利用CMake作为包管理器:相同的项目中,将以相同的方式处理依赖项,无论依赖项在系统上是已经可用,还是需要重新构建。接下来的5个示例,将带您了解该模式,并展示如何使用它来获取和构建依赖关系。

NOTE:这两个模块都有大量的在线文档。ExternalProject.cmake,可以参考https://cmake.org/cmake/help/v3.5/module/ExternalProject.htmlFetchContent.cmake,可以参考https://cmake.org/cmake/help/v3.11/module/FetchContent.html