【发布时间】:2018-12-12 21:38:43
【问题描述】:
我创建了一个 waf 功能来在所有构建文件上运行 size,但我不想像我最初想要的那样做(参见 Custom waf task does neither run nor find sources)。
所以我现在写了一个功能,它通常可以正常工作,但再次无法正确找到源。我使用@after('apply_link'),因此二进制文件应该存在...
- 首次运行:生成所有二进制文件,但
size没有输入文件。 - 第二次运行:所有二进制文件都在那里,
size功能运行正常。为什么会这样?
waf 功能:
from waflib.TaskGen import extension
from waflib.TaskGen import after
class size(Task.Task):
color = 'BLUE'
run_str = '${SIZE} ${SRC} > ${TGT}'
@extension('.o', '.a', '.elf')
@after('apply_link')
def add_size(self, node):
name = 'size'
out = node.change_ext('.log')
task = self.create_task(name, node, out)
try:
self.size_tasks.append(task)
except AttributeError:
self.size_tasks = [task]
return task
使用功能:
bld(source=bld.path.get_bld().ant_glob('**/*.o **/*.a **/*.elf'),
features='size')
附带问题:是否有更好的选择将此任务的输出记录为将带有> 的输出重定向到输出文件中?
【问题讨论】:
标签: waf