summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/data.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/data.py')
-rw-r--r--bitbake/lib/bb/data.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py
index 5bb2595893..7c1533cfa9 100644
--- a/bitbake/lib/bb/data.py
+++ b/bitbake/lib/bb/data.py
@@ -49,6 +49,7 @@ from bb import data_smart
49from bb import codeparser 49from bb import codeparser
50import bb 50import bb
51 51
52logger = data_smart.logger
52_dict_type = data_smart.DataSmart 53_dict_type = data_smart.DataSmart
53 54
54def init(): 55def init():
@@ -258,7 +259,7 @@ def emit_func(func, o=sys.__stdout__, d = init()):
258 emit_var(key, o, d, False) and o.write('\n') 259 emit_var(key, o, d, False) and o.write('\n')
259 260
260 emit_var(func, o, d, False) and o.write('\n') 261 emit_var(func, o, d, False) and o.write('\n')
261 newdeps = bb.codeparser.ShellParser(func).parse_shell(d.getVar(func, True)) 262 newdeps = bb.codeparser.ShellParser(func, logger).parse_shell(d.getVar(func, True))
262 seen = set() 263 seen = set()
263 while newdeps: 264 while newdeps:
264 deps = newdeps 265 deps = newdeps
@@ -267,7 +268,7 @@ def emit_func(func, o=sys.__stdout__, d = init()):
267 for dep in deps: 268 for dep in deps:
268 if bb.data.getVarFlag(dep, "func", d): 269 if bb.data.getVarFlag(dep, "func", d):
269 emit_var(dep, o, d, False) and o.write('\n') 270 emit_var(dep, o, d, False) and o.write('\n')
270 newdeps |= bb.codeparser.ShellParser(dep).parse_shell(d.getVar(dep, True)) 271 newdeps |= bb.codeparser.ShellParser(dep, logger).parse_shell(d.getVar(dep, True))
271 newdeps -= seen 272 newdeps -= seen
272 273
273def update_data(d): 274def update_data(d):
@@ -276,6 +277,7 @@ def update_data(d):
276 277
277def build_dependencies(key, keys, shelldeps, vardepvals, d): 278def build_dependencies(key, keys, shelldeps, vardepvals, d):
278 deps = set() 279 deps = set()
280 vardeps = d.getVarFlag(key, "vardeps", True)
279 try: 281 try:
280 value = d.getVar(key, False) 282 value = d.getVar(key, False)
281 if key in vardepvals: 283 if key in vardepvals:
@@ -291,13 +293,15 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d):
291 parser = bb.codeparser.ShellParser(key, logger) 293 parser = bb.codeparser.ShellParser(key, logger)
292 parser.parse_shell(parsedvar.value) 294 parser.parse_shell(parsedvar.value)
293 deps = deps | shelldeps 295 deps = deps | shelldeps
296 if vardeps is None:
297 parser.log.flush()
294 deps = deps | parsedvar.references 298 deps = deps | parsedvar.references
295 deps = deps | (keys & parser.execs) | (keys & parsedvar.execs) 299 deps = deps | (keys & parser.execs) | (keys & parsedvar.execs)
296 else: 300 else:
297 parser = d.expandWithRefs(value, key) 301 parser = d.expandWithRefs(value, key)
298 deps |= parser.references 302 deps |= parser.references
299 deps = deps | (keys & parser.execs) 303 deps = deps | (keys & parser.execs)
300 deps |= set((d.getVarFlag(key, "vardeps", True) or "").split()) 304 deps |= set((vardeps or "").split())
301 deps -= set((d.getVarFlag(key, "vardepsexclude", True) or "").split()) 305 deps -= set((d.getVarFlag(key, "vardepsexclude", True) or "").split())
302 except: 306 except:
303 bb.note("Error expanding variable %s" % key) 307 bb.note("Error expanding variable %s" % key)