如何使用CMake一次构建多个配置?

时间:2011-03-05 13:47:19

标签: cmake

E.g。我应该如何同时构建发布和调试版本?我想答案是利用缓存变量和它们的某种“集合”。 从缓存参数中获取配置参数是否常见?是不是?如果答案是肯定的,我应该如何以最佳方式使用它们的几个“集合”? 非常感谢!

2 个答案:

答案 0 :(得分:11)

您没有指定您正在谈论的平台。基于Makefile的生成器一次只构建一个配置,构建多个配置的常规方法是使用单独的构建树,例如,一个用于英特尔上的64位Linux,一个用于32位Windows等。大多数CMake项目建议使用源代码构建,并假设您正确编写了CMakeLists文件,您可以拥有〜/ src / YourProject和〜/ build / YourProject -Release,〜/ build / YourProject-Debug。

这是建议的方法,假设您的源树中没有任何CMakeCache.txt等。然后,您可以在调试目录中运行cmake -DCMAKE_BUILD_TYPE:STRING = Debug~ / src / YourProject,类似于发行版。这样做的好处是可以将相关项目指向适当的配置。

Boost CMake项目还探索了使用库名称修改来区分同一构建树中的所有配置。如果您必须在同一构建树中构建所有配置,这可能值得一看。

答案 1 :(得分:6)

(对于谷歌同行)

小心不要混淆构建类型构建配置

如果您的意思是“构建类型”,例如 debug release ,并且想要同时构建它们,那么Cmake FAQ会给出答案:{{3 }}

基本上它涉及使用多个源外构建。