We need to checksum the rule as string command of the
sourcecode of the python function.
This is stored in the 'ruledeps' envariable on the waf Task.
See exec_rule() in wafadmin/TaskGen.py.
dep_vars = getattr(self, 'dep_vars', ['ruledeps'])
if dep_vars:
tsk.dep_vars = dep_vars
if isinstance(self.rule, str):
tsk.env.ruledeps = self.rule
else:
# only works if the function is in a global module such as a waf tool
tsk.env.ruledeps = Utils.h_fun(self.rule)
If there's no 'dep_vars' it defaults to ['ruledeps'].
As we pass our own 'dep_vars' we need to explicitly add
'ruledeps'.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=10472
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
(cherry picked from commit
ee8fbbd41741e958e0ab6d7b9ab465d664abac60)
dep_vars = vars.keys()
elif isinstance(vars, list):
dep_vars = vars
+ dep_vars.append('ruledeps')
bld.SET_BUILD_GROUP(group)
t = bld(
before='cc',
ext_out='.c',
samba_type='GENERATOR',
- dep_vars = [rule] + dep_vars,
+ dep_vars = dep_vars,
name=name)
if always: