Используя waf, как я могу ссылаться на файл в каталоге сборки в качестве входных данных для другой команды сборки?

Я использую waf в качестве системы сборки для своего проекта, и мне нужно выполнить две последовательные команды оболочки во время процесса сборки, в котором выходной файл из первой команды должен быть указан в качестве входного файла в командной строке для второй команды. Согласно waf book, общий шаблон для выполнения команд ОС выглядит так:

bld(rule='cp ${SRC} ${TGT}', source='input.txt', target='output.txt')

При использовании этого шаблона целевой каталог будет автоматически добавляться к целевому файлу. Но неясно, как ссылаться на этот файл как на входной файл в последующих командах.

ОС Linux, Python версии 2.7, waf версии 1.8.9

Как это может быть сделано?


person zaadeh    schedule 12.10.2015    source источник


Ответы (1)


Обычно вам просто нужно использовать целевой файл. Большинство инструментов WAF пытаются сначала найти файл в каталоге сборки и в исходном каталоге. Если не найдено, что-то построить. Итак, вы можете сделать:

rule = 'cp ${SRC} ${TGT}'

bld(rule=rule, source='input.txt', target='output.txt')
bld(rule=rule, source='output.txt', target='output2.txt')

И вы получите что-то вроде:

[1/2] output.txt: input.txt -> build/output.txt
[2/2] output2.txt: build/output.txt -> build/output2.txt

WAF ищет относительные пути из каталога сборки и исходного кода.

person neuro    schedule 13.10.2015