diff options
Diffstat (limited to 'bitbake/lib/bb/data.py')
-rw-r--r-- | bitbake/lib/bb/data.py | 10 |
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 | |||
49 | from bb import codeparser | 49 | from bb import codeparser |
50 | import bb | 50 | import bb |
51 | 51 | ||
52 | logger = data_smart.logger | ||
52 | _dict_type = data_smart.DataSmart | 53 | _dict_type = data_smart.DataSmart |
53 | 54 | ||
54 | def init(): | 55 | def 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 | ||
273 | def update_data(d): | 274 | def update_data(d): |
@@ -276,6 +277,7 @@ def update_data(d): | |||
276 | 277 | ||
277 | def build_dependencies(key, keys, shelldeps, vardepvals, d): | 278 | def 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) |