我对 CMake 很陌生,阅读了一些关于如何使用它的教程,并编写了一些复杂的 50 行 CMake 脚本,以便为 3 个不同的编译器制作程序。这可能总结了我在 CMake 中的所有知识。
现在我的问题是我有一些源代码,当我制作程序时我不想触摸/弄乱它的文件夹。我希望所有 CMake 和make
输出文件和文件夹都进入../Compile/
,所以我在我的 CMake 脚本中更改了一些变量,当我在笔记本电脑上做这样的事情时它工作了一段时间:
Compile$ cmake ../src
Compile$ make
我现在所在的文件夹中有一个干净的输出,这正是我正在寻找的。
现在我搬到另一台电脑上,重新编译 CMake 2.8.11.2,我几乎回到了原点!它总是将东西编译到src
我所在的文件夹中CMakeLists.txt
。
我在 CMake 脚本中选择目录的部分是:
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/../Compile/)
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${dir})
set(CMAKE_BUILD_FILES_DIRECTORY ${dir})
set(CMAKE_BUILD_DIRECTORY ${dir})
set(CMAKE_BINARY_DIR ${dir})
SET(EXECUTABLE_OUTPUT_PATH ${dir})
SET(LIBRARY_OUTPUT_PATH ${dir}lib)
SET(CMAKE_CACHEFILE_DIR ${dir})
现在它总是以:
-- Build files have been written to: /.../src
我错过了什么吗?