CMake生成没有glob的源文件列表

时间:2017-07-13 21:08:16

标签: c++ visual-studio cmake cross-platform visual-studio-2017

我目前正在使用这段代码生成我的源文件列表 用于CMake编译我的C ++项目:

file(GLOB CPP_FILES src/*.cpp)

正如我在这里读到的那样,CMake不鼓励我想知道我是否可以使用CMake明确地列出CMake的源文件,因为我不熟悉像Python这样的脚本语言。

我问这个问题,因为要将所有cpp文件手动添加到CMake中需要大量工作,尤其是在与多人合作时。

该项目与平台无关,我的源文件位于子文件夹中。

1 个答案:

答案 0 :(得分:4)

CMake没有本地方法为您执行此操作。

您可以对大型或共享项目执行的操作是使用可以扫描文件系统或其他存储库的任何内容创建的脚本,以生成列出源文件的CMake文件。

然后你可以include()生成这个CMake文件。

CMake文件中的说明可能正在使用target_sources()来表示已知目标。

<强>的CMakeLists.txt:

add_executable(myexe "")
include(sourcelist)

<强> sourcelist.cmake:

target_sources(myexe PRIVATE
    mysourcefile1.cpp
    mysourcefile2.cpp
)

或通过附加到变量:

<强>的CMakeLists.txt:

include(sourcelist)
add_executable(myexe ${sources})

<强> sourcelist.cmake:

set(sources ${sources} 
    mysourcefile1.cpp
    mysourcefile2.cpp
)