[CMake翻译]CMake 3.17中的多配置Ninja生成器

1,348 阅读2分钟

原文地址:blog.kitware.com/multi-confi…

原文作者:blog.kitware.com/author/kyle…

发布时间:于2020年2月3日

我们很高兴地宣布,在 CMake 3.17 中,Ninja 生成器的一个新的多配置变体将适用于所有支持的平台。这个功能在过去一直被要求,甚至被外部贡献者尝试过,但直到现在才完成。随着 Qt 项目向 CMake 的迁移,我们终于实现了这个功能,以帮助构建 Qt 的调试和发布版本。

Ninja多配置生成器会生成.ninja文件,就像传统的单配置Ninja生成器一样。然而,它为多个配置生成这些文件,类似于Visual Studio和XCode生成器。这意味着,有史以来第一次,CMake支持在Linux和所有其他支持的平台上进行多配置构建。(在开发这个功能之前,只有Windows和MacOS可以分别使用Visual Studio和XCode进行多配置构建。)

当使用Ninja多配置生成器时,会生成多个build-<Config>.ninja文件,CMAKE_CONFIGURATION_TYPES中的每个配置都有一个。通过运行ninja -f build-<Config>.ninja <target>来选择一个配置,它将在所选配置中构建<target>。当然,你也可以使用cmake --build . --config <config>来代替构建。

如果你不想用-f参数运行ninja,不用担心。你可以选择为 build.ninja 文件指定一个配置,在这种情况下,运行 ninja <target> 就会像运行 ninja -f build-<DefaultConfig>.ninja <target> 一样。

Ninja Multi-Config生成器的一个更高级的功能是跨配置模式。在这种模式下,你可以使用一个配置中内置的工具来运行另一个配置的自定义命令。例如,您可以运行代码生成工具的发布版本来生成一些代码,然后将在调试配置中编译。这对于在调试模式下构建目标非常有用,而不必使用用于生成代码的工具的较慢调试版本。

Ninja Multi-Config生成器将在CMake 3.17中提供。关于如何使用它的细节,请参见 CMake 文档


通过www.DeepL.com/Translator (免费版)翻译