【发布时间】:2011-11-08 12:39:37
【问题描述】:
我如何告诉 cmake 它应该在哪里输出它的构建数据?
假设我有一个名为 src/ 的源代码目录, 然后因为 cmake 输出了很多文件,我希望他把所有的文件都放进去 一个名为 build/ 的目录。 但我希望他把生成的 Makefile 放在项目根目录中, 所以我不必进入构建目录来构建应用程序。
cmake 可以做到这一点吗?
如果我像这样在构建目录中玩 cmake,我已经设法将 cmake 输出:
cd build/
cmake ../src/
make
./hello
但最好留在项目根目录并输入类似这样的内容
cmake
make
./hello
我想我需要在项目根目录中放置一个 CMakeList.txt,并使用一些魔术命令告诉他可以将目标文件放在哪里以及在哪里可以找到源代码。
谢谢
更新: 因为我的问题有点模糊。
运行 cmake 命令后,我希望我的树看起来像这样:
src/CMakeLists.txt
src/hello.c
src/hello.h
build/CMakeCache.txt
build/CMakeFiles/
build/cmake_install.cmake
CMakeLists.txt
Makefile
所以问题是 CMakeLists.txt 在这个设置中应该是什么样子。
- CMakeLists.txt
- src/CMakeLists.txt
但也许这是不可能的?
【问题讨论】:
-
你有什么运气吗?我想要完全相同的东西。
-
@meffordm 不,我放弃了这个想法(和 cmake)。
-
那么,你最终做了什么?也许您的解决方案(即使没有 cmake)可能对我的项目有帮助。
-
那个项目很小,所以我留在了 GNU Make,但我正在考虑编写一个小的“包装脚本”(“构建脚本”)并将其放在项目根目录中。
-
我一直在思考同样的问题......也许是一个python脚本,所以它可以成为一个跨平台的工具。我只是不喜欢无法控制项目。
标签: c++ c build-process cmake