2013-07-04 2 views
2

У меня есть цель в waf, которая зависит от нескольких других файлов. Есть программа, которая перечисляет эти зависимости, и я хочу ее использовать, и перейдите к waf. I.e, если у меня есть цель T, там - это программа, в которой перечислены все зависимости для T. Но я не знаю, как пройти этот до bld.add_manual_dependency().Waf, проблема с добавлением ручных зависимостей

один файл в зависимости, кажется, работает нормально:

bld.add_manual_dependency(bld.path.find_or_declare('T'), bld.path.find_resource('Dep1')) 

Но если я передать список в качестве второго аргумента, кажется, принять, но не работает !. Я хочу знать, как передавать несколько файлов (не ant_glob(), но выбранные программой).

+2

Привет, можете ли вы быть более конкретным относительно вашей потребности? У waf есть система инструментов, с генераторами задач, которые могут сканировать файловые зависимости. Вы можете попросить внешнюю программу указать имена зависимостей и разрешить их узлам в исходной папке. –

+0

посещая это после долгого времени !, @Zouloub - ок, я думаю, что я застрял в именах -> узлах, которые я думаю! потому что внешняя программа перечисляет имена на 'stdout' – vyom

ответ

0

Это зависит от того, как вы хотите, чтобы цель производилась из зависимостей. В простейшем случае, вы просто использовать наращивание правило с источниками и цель:

def build(bld): 
    bld(
     rule = 'cat ${SRC[0].abspath()} > ${TGT}', 
     source = ['hello.txt', 'there.txt'], 
     target = 'out.txt' 
    ) 

Как вы можете видеть, out.txt будет производиться кошкой: Инж hello.txt к нему и как hello.txt и there.txt будет рассматриваться как целевые зависимости. Здесь я жестко закодировал зависимости в wscript, но вы, конечно, вызываете свою программу, которая генерирует список зависимостей, как использование этого.

+0

Его такое старое сообщение, что теперь я перешел от этого, но все же, IIRC проблема, которую я имел, заключалась в добавлении зависимостей, которые не были источниками (что-то похожее на'. h' файлов при компиляции файла '.c', но это был инструмент для другого языка) – vyom

+0

Мой пример демонстрирует именно это. 'there.txt' является зависимостью, даже если он не используется процессом. Если вы имеете в виду что-то еще, возможно, вы можете уточнить? –

+0

ОК, я должен проверить источники, не могу точно помнить, где я застрял! :( – vyom

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