从其他路径添加源don';不要使用CMakeLists.txt,并将输出文件移动到CMake中的其他路径

从其他路径添加源don';不要使用CMakeLists.txt,并将输出文件移动到CMake中的其他路径,cmake,Cmake,我的源代码树: /project /project/src/<my sources> /project/build/vs2008 /project/build/ubuntu /project /工程/建造业监理/ /项目/构建/vs2008 /项目/构建/ubuntu 我想把我的CMakeLists.txt放在vs2008和ubuntu中。我可以接受将一个CMakeLists.txt放在每个文件夹中,并将另一个全局CMakeLists.txt放在/project/build上,但

我的源代码树:

/project
/project/src/<my sources>
/project/build/vs2008
/project/build/ubuntu
/project
/工程/建造业监理/
/项目/构建/vs2008
/项目/构建/ubuntu

我想把我的CMakeLists.txt放在
vs2008
ubuntu
中。我可以接受将一个CMakeLists.txt放在每个文件夹中,并将另一个全局CMakeLists.txt放在
/project/build
上,但我只是不希望在
/project/src
中有任何CMakeLists.txt(因此我不能使用
添加子目录
命令)。我需要
/project/build/vs2008中的visual studio解决方案文件和
/project/build/ubuntu中的Makefile。我应该知道哪些命令?

我想您不需要知道什么特别的事情——您只需要指定源文件的路径,相对于
CMakeLists.txt
所在的位置,并且您的目标应该与您在
src
文件夹中放置的
CMakeLists.txt
相同。例如,
project/build/ubuntu/CMakeLists.txt
可能如下所示:

set( SrcDir ../../src )
add_executable( MyApp
    ${SrcDir}/file1.cpp
    ${SrcDir}/file2.cpp
    # and so on
)

是的,我知道。乍一看,我应该设置一些命令。无论如何,谢谢你的回答。你的src/文件夹中的CMakeLists.txt有什么问题?这是使用CMake的“惯用”方式。如果您不想将CMakeLists.txt放在.cpp和.h文件旁边,为什么不在其周围添加一个额外的目录?例如,Source/CMakeLists.txt和Source/src/*。我认为您需要一个源代码外版本: