如何告诉cmake它应该输出其构建数据的位置?
假设我有一个名为src/的源代码目录,由于cmake会输出大量文件,我希望将所有这些文件放在名为build/的目录中。但我希望将生成的Makefile放在项目根目录中,这样我就不必进入build目录来构建应用程序。
这个在cmake中可行吗?
如果我在build目录中运行如下命令,我已经成功地得到了cmake的输出:
我猜我需要在项目根目录中放置一个CMakeList.txt文件,并使用一些神奇的命令告诉它哪里可以放置对象文件以及在哪里可以找到源代码。
谢谢。
更新:
由于我的问题有点模糊。在运行cmake命令后,我希望我的目录树看起来像这样:
假设我有一个名为src/的源代码目录,由于cmake会输出大量文件,我希望将所有这些文件放在名为build/的目录中。但我希望将生成的Makefile放在项目根目录中,这样我就不必进入build目录来构建应用程序。
这个在cmake中可行吗?
如果我在build目录中运行如下命令,我已经成功地得到了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
但也许这不可能吗?