如何告诉CMake将构建文件放在哪里?

44
我想告诉CMake将文件和文件夹输出到不同的文件夹而不是当前文件夹。 我所说的是由CMake生成的文件如下:
  • 文件:CMakeCache.txt
  • 目录:CMakeFiles/
  • 文件:Makefile
  • 目录:bin/
  • 文件:cmake_install.cmake
是否有办法让CMake在另一个文件夹中输出这些文件和文件夹? 我编写了一个工具,从项目目录的根目录执行CMake,结果我的项目目录会因上述生成的文件和文件夹而混乱。
这里有一个链接,可以看到我想要的: http://pastebin.com/cxykCi5M 希望这能更清楚地表达我想要的内容。

这篇帖子可能会有所帮助。 - Rubens
1个回答

90

你可以使用未公开的命令行选项-B-H分别指定构建目录和源目录。因此,从你的项目根目录,你可以执行以下命令:

cmake -Bbuild -H.
< p >(其中build是您的构建目录路径。)< /p >

1
@Fraser 在 CMakeLists.txt 中是否可以指定构建文件夹作为选项? - Steve Lorimer
@SteveLorimer - 不好意思,没有。这基本上取决于用户,尽管有一些技巧可以减轻用户试图进行源代码构建的影响,例如如果这是您真正想要的。 - Fraser
6
谢谢这个提示……这对我很有帮助……不再需要"md XX;cd XX;cmake .."了 ;) 谢谢 ;) - Gabor
如果它们没有文档,它们是否安全可靠? - jwm
1
-B is documented, at least in CMake 3.14: -B <path-to-build> = Explicitly specify a build directory. Of course you can display it with cmake --help - air-dex
从CMake 3.13版本开始,-B选项现在已经有了文档说明。他们还声称在提供源目录时使用-S选项,尽管仍未记录的-H选项也可以使用。 - Kevin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接