2014-03-14 2 views
3

My C-НКУ Структура проекта:Waf: Рекурсивный сбор исходных файлов и включают в себя тракты

\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 

Как я могу рекурсивно найти все * .c файлы в 'Источник' и добавить к

bld.program(source=HERE)? 

вместо того, чтобы вручную перечислить его:

bld.program(source="foo.c bar.c...", includes='..\\Source ..\\Source\Module_1') 

Кроме того, как я могу найти все вложенные папки (предпочтительно, который имеет * .h) и добавить, чтобы включить путь?

Должен ли я писать свои собственные функции поиска в python и просто передавать его?

bld.program(source=SRCs_FOUND, includes=Paths_FOUND) 

Будет ли это причиной каких-либо проблем с зависимостью при строительстве?

В любой современной среде IDE это мышление является общим, перетащите один файл в исходное дерево и автоматически добавьте его в список сборки. Благодаря!

ответ

3

Вы можете использовать globbing для сканирования каталогов.

bld.program(
    name = ... 
    .... 
    source = bld.path.ant_glob('**/Source/*.C') 
) 

Просто найдите ant_glob в waf book.

Смежные вопросы