1.2 切换生成器
CMake是一个构建系统生成器,可以使用单个CMakeLists.txt为不同平台上的不同工具集配置项目。您可以在CMakeLists.txt中描述构建系统必须运行的操作,以配置并编译代码。基于这些指令,CMake将为所选的构建系统(Unix Makefile、Ninja、Visual Studio等等)生成相应的指令。我们将在第13章中重新讨论生成器。
CMake针对不同平台支持本地构建工具列表。同时支持命令行工具(如Unix Makefile和Ninja)和集成开发环境(IDE)工具。用以下命令,可在平台上找到生成器名单,以及已安装的CMake版本:
这个命令的输出,将列出CMake命令行界面上所有的选项,您会找到可用生成器的列表。例如,安装了CMake 3.11.2的GNU/Linux机器上的输出:
我们将重用前一节示例中的和CMakeLists.txt
。惟一的区别在使用CMake时,因为现在必须显式地使用命令行方式,用-G
切换生成器。
首先,使用以下步骤配置项目:
- 和
rules.ninja
:包含Ninja的所有的构建语句和构建规则。 CMakeCache.txt
:CMake会在这个文件中进行缓存,与生成器无关。cmake_install.cmake
:CMake脚本处理安装规则,并在安装时使用。
cmake --build .
将命令封装在一个跨平台的接口中。
我们将在第13章中讨论可选生成器和交叉编译。
要了解关于生成器的更多信息,CMake官方文档是一个很好的选择: https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html