summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r--bitbake/lib/bb/data.py20
-rw-r--r--bitbake/lib/bb/siggen.py4
2 files changed, 23 insertions, 1 deletions
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py
index c0636e10e8..e3ffefeb36 100644
--- a/bitbake/lib/bb/data.py
+++ b/bitbake/lib/bb/data.py
@@ -279,7 +279,12 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d):
279 deps = set() 279 deps = set()
280 vardeps = d.getVarFlag(key, "vardeps", True) 280 vardeps = d.getVarFlag(key, "vardeps", True)
281 try: 281 try:
282 value = d.getVar(key, False) 282 if key[-1] == ']':
283 vf = key[:-1].split('[')
284 value = d.getVarFlag(vf[0], vf[1], False)
285 else:
286 value = d.getVar(key, False)
287
283 if key in vardepvals: 288 if key in vardepvals:
284 value = d.getVarFlag(key, "vardepvalue", True) 289 value = d.getVarFlag(key, "vardepvalue", True)
285 elif d.getVarFlag(key, "func"): 290 elif d.getVarFlag(key, "func"):
@@ -301,6 +306,19 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d):
301 parser = d.expandWithRefs(value, key) 306 parser = d.expandWithRefs(value, key)
302 deps |= parser.references 307 deps |= parser.references
303 deps = deps | (keys & parser.execs) 308 deps = deps | (keys & parser.execs)
309
310 # Add varflags, assuming an exclusion list is set
311 varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS', True)
312 if varflagsexcl:
313 varfdeps = []
314 varflags = d.getVarFlags(key)
315 if varflags:
316 for f in varflags:
317 if f not in varflagsexcl:
318 varfdeps.append('%s[%s]' % (key, f))
319 if varfdeps:
320 deps |= set(varfdeps)
321
304 deps |= set((vardeps or "").split()) 322 deps |= set((vardeps or "").split())
305 deps -= set((d.getVarFlag(key, "vardepsexclude", True) or "").split()) 323 deps -= set((d.getVarFlag(key, "vardepsexclude", True) or "").split())
306 except: 324 except:
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index daf56770f9..c4b7c3992e 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -108,6 +108,10 @@ class SignatureGeneratorBasic(SignatureGenerator):
108 data = data + dep 108 data = data + dep
109 if dep in lookupcache: 109 if dep in lookupcache:
110 var = lookupcache[dep] 110 var = lookupcache[dep]
111 elif dep[-1] == ']':
112 vf = dep[:-1].split('[')
113 var = d.getVarFlag(vf[0], vf[1], False)
114 lookupcache[dep] = var
111 else: 115 else:
112 var = d.getVar(dep, False) 116 var = d.getVar(dep, False)
113 lookupcache[dep] = var 117 lookupcache[dep] = var