是否可以在wscript文件中编写WAF函数,在构建每个更改的文件时将调用该函数?
我希望能够做到以下几点:
.hpp
文件,并将它们输出到构建文件夹。如果这样的文件被更改,我想处理它并在输出文件夹中更新它的定义。.hpp
文件,并将resutl输出到build文件夹。更新
解释:我想为每个更改的文件运行一个fun1(file)
函数,它将读取文件,修改它并返回修改后的版本,该版本应该输出到目标目录。
答案 0 :(得分:1)
仅处理修改过的文件是WAF ^^
的主要特征之一要执行你的python函数,你可以这样做:
top = '.'
out = 'build'
def configure(conf):
pass
def build(bld):
def fun1(input_file):
# whatever
return output_file_content_as_string
def process(task):
for src_node in task.inputs:
src = src_node.abspath()
tgt = src_node.get_bld()
out = fun1(src)
tgt.write(out)
return 0 # everything ok
bld(
rule = process,
source = ['myfile.hpp', 'myfile2.hpp', ],
)
这将在myfile.hpp等上调用fun1,并仅在修改后的文件中输出build dir。
默认情况下,waf管理每个源的签名以检测任何更改,并仅在签名更改时处理它...