【问题标题】:CMake: add all files on current directory and subdirectories with target_sources()CMake:使用 target_sources() 添加当前目录和子目录中的所有文件
【发布时间】:2020-03-05 08:01:14
【问题描述】:

在我们的 C++ 项目中,我们有几个 CMakeLists.txt 文件(位于不同的目录中),列出了 target_sources() 所需的每个 cpp 文件。

例如:

target_sources(<Project> PUBLIC
    foo_1.cpp
    foo_2.cpp
    foo_3.cpp
)

如果我们的源文件很少,这很好,但是对于那些我们有多个 cpp 文件要添加的目录来说,这变得越来越困难。

有没有简单的方法告诉target_resources() 将所有文件添加到 CMakeList.txt 文件所在的目录和子目录中?

例如,将 CMakeLists.txt 放置在包含多个文件和子目录(包含更多文件)的目录中,只会添加其中包含的所有内容。

【问题讨论】:

标签: c++ cmake


【解决方案1】:

这解决了我的问题:

file(GLOB SRC_FILES    
    "*.cpp"
)

target_sources(<project> PUBLIC
    ${SRC_FILES}
)
´´´

【讨论】:

  • 如果你使用这个GLOB命令,你至少应该加上CONFIGURE_DEPENDS。它可以帮助避免使用此命令的一些意外或不明显的后果。
猜你喜欢
  • 2011-04-08
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 2011-12-20
  • 2017-01-07
  • 1970-01-01
相关资源
最近更新 更多