]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
wafsamba: fix dependency calculation for SAMBA_GENERATOR()
authorStefan Metzmacher <metze@samba.org>
Tue, 26 Aug 2014 21:11:39 +0000 (23:11 +0200)
committerKarolin Seeger <kseeger@samba.org>
Tue, 18 Nov 2014 20:09:04 +0000 (21:09 +0100)
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)

buildtools/wafsamba/wafsamba.py

index 73f1ae9f4697c736a30754bfed97c85073af7cf2..1763b00b10f3d2336815a92509749142ef0daa78 100644 (file)
@@ -592,6 +592,7 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
         dep_vars = vars.keys()
     elif isinstance(vars, list):
         dep_vars = vars
+    dep_vars.append('ruledeps')
 
     bld.SET_BUILD_GROUP(group)
     t = bld(
@@ -603,7 +604,7 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
         before='cc',
         ext_out='.c',
         samba_type='GENERATOR',
-        dep_vars = [rule] + dep_vars,
+        dep_vars = dep_vars,
         name=name)
 
     if always: