我的wscript文件很简单:
def configure(ctx):
pass
def build(bld):
bld(rule='mkdir aaa', target='aaa')
bld(rule='touch bbb', source='aaa', target='bbb')waf configure和waf build的第一次运行通过OK。但是第二个waf build失败了,有一个错误:
source not found: 'aaa' in bld(source='aaa', target=['bbb'], meths=['process_rule', 'process_source'], features=[], path=/home/rnd/prj/prj2/prj-web, idx=2, tg_idx_count=2, rule='touch bbb', posted=True, _name='bbb') in /home/rnd/prj/prj2/prj-web但是,如果要将"mkdir“改为”触摸“--一切都如预期的那样工作。如何使用目录作为目标?(PS. )有趣的是,它也可以作为源代码使用),因为它在普通的Makefile中很容易,所以我觉得Waf也可以处理目录。
发布于 2022-08-26 08:09:23
好的,waf模型不使用source和target关键字管理目录。您可以使用自己的特定关键字处理目录,如source_dir和target_dir。比如:
def my_rule(task):
tg = task.generator
target_dir = tg.path.get_bld().make_node(target_dir)
target_dir.mkdir()
bld(rule=my_rule, target=dir = "bbb")https://stackoverflow.com/questions/73280840
复制相似问题