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)
committerStefan Metzmacher <metze@samba.org>
Fri, 5 Sep 2014 17:47:05 +0000 (19:47 +0200)
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>
buildtools/wafsamba/wafsamba.py

index ba34fe5400f1ddd5f1bdb8c4e39b1a3940aa6c2a..ce391a237556416ce70c7324e820ca43ce9035ec 100644 (file)
@@ -599,11 +599,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(
@@ -618,6 +615,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