【发布时间】:2012-04-02 11:45:06
【问题描述】:
如何设置 CMake 以递归扫描给定目录并确定源文件列表?
我的项目是一个共享库。我有一个类似这样的文件夹结构:
/
src/ # Source files in an arbitrary tree
include/ # Headers, tree mirrors that of the src/ folder
examples/ # Executable code examples that link against the library
CMakeLists.txt
我希望 CMake 递归扫描 src 和 include 并确定我的项目中的源文件和头文件列表,而不管目录结构如何。我也想避免:
- 用无穷无尽的
CMakeLists.txt文件污染src/和include/目录 - 每次更改文件夹结构时都必须更改和调整脚本
不过,每个示例都有自己的构建脚本很好。
【问题讨论】:
-
@Medicineman25,这个问题是关于 globbing 单个目录的。我的是关于 globbing 整棵树,需要递归算法。
-
确实如此,尽管答案是相同的。
-
@Medicineman25,但问题不是。虽然发布了递归解决方案,但许多可能重复的答案(包括接受的答案)与我的问题不兼容。
-
我看到许多问题被标记为重复,其中问题不同但答案最终相同。这样,SO 鼓励人们找到正确的问题,而不仅仅是正确的答案。虽然你是对的:接受的答案是不同的,所以我会留下它:)
标签: build build-process cmake build-automation build-system