我的C-gcc项目结构是:
\Project\wscript (only one in project)
\Project\build\
\Project\Source\Module_1\foo.c
\Project\Source\Module_1\foo.h
\Project\Source\Module_1\dummy\foo2.h
\Project\Source\Module_n\bar.c
\Project\Source\Module_n\any dept...\bar.h
如何递归查找“Source”中的所有* .C文件并添加到
bld.program(source=HERE)?
而不是手动列出它:
bld.program(source="foo.c bar.c...", includes='..\\Source ..\\Source\Module_1')
另外,如何查找每个子文件夹(最好是* .h)并追加包含路径?
我应该在python中编写自己的finder函数并传递它吗?
bld.program(source=SRCs_FOUND, includes=Paths_FOUND)
这会在构建中导致任何依赖性问题吗?
在任何现代IDE中,这种想法很常见,将一个文件拖到Source树中,它会自动添加到构建列表中。谢谢!
答案 0 :(得分:3)
您可以使用globbing扫描目录。
bld.program(
name = ...
....
source = bld.path.ant_glob('**/Source/*.C')
)
只需在waf book中搜索ant_glob。