wafsamba: fix dependency for SAMBA_GENERATOR() when passing vars!=None
authorStefan Metzmacher <metze@samba.org>
Tue, 26 Aug 2014 21:11:39 +0000 (23:11 +0200)
committerKarolin Seeger <kseeger@samba.org>
Mon, 17 Nov 2014 20:21:12 +0000 (21:21 +0100)
vars can only be a dictionary as that's the only thing bld.EXPAND_VARIABLES()
accepts.

We need to checksum the whole vars dictionary into the dependencies.

We set task.env.SAMBA_GENERATOR_VARS = vars and add SAMBA_GENERATOR_VARS
to the dep_vars.

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 da8c76354549a64181cffc36e1c0bb0c6c4f87d3)

buildtools/wafsamba/wafsamba.py

index fafec1f3ea481b3e983a841c78f585f4d82d9fab..ff97e88ce5a116ac87e557d00df40b182ac5044b 100644 (file)
@@ -588,11 +588,8 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
         return
 
     dep_vars = []
-    if isinstance(vars, dict):
-        dep_vars = vars.keys()
-    elif isinstance(vars, list):
-        dep_vars = vars
     dep_vars.append('ruledeps')
+    dep_vars.append('SAMBA_GENERATOR_VARS')
 
     bld.SET_BUILD_GROUP(group)
     t = bld(
@@ -607,6 +604,10 @@ def SAMBA_GENERATOR(bld, name, rule, source='', target='',
         dep_vars = dep_vars,
         name=name)
 
+    if vars is None:
+        vars = {}
+    t.env.SAMBA_GENERATOR_VARS = vars
+
     if always:
         t.always = True