diff options
Diffstat (limited to 'bitbake/lib/bb/data.py')
-rw-r--r-- | bitbake/lib/bb/data.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py index bfaa0410ea..841369699e 100644 --- a/bitbake/lib/bb/data.py +++ b/bitbake/lib/bb/data.py | |||
@@ -261,7 +261,7 @@ def emit_func_python(func, o=sys.__stdout__, d = init()): | |||
261 | newdeps |= set((d.getVarFlag(dep, "vardeps") or "").split()) | 261 | newdeps |= set((d.getVarFlag(dep, "vardeps") or "").split()) |
262 | newdeps -= seen | 262 | newdeps -= seen |
263 | 263 | ||
264 | def build_dependencies(key, keys, shelldeps, varflagsexcl, ignored_vars, d): | 264 | def build_dependencies(key, keys, mod_funcs, shelldeps, varflagsexcl, ignored_vars, d): |
265 | def handle_contains(value, contains, exclusions, d): | 265 | def handle_contains(value, contains, exclusions, d): |
266 | newvalue = [] | 266 | newvalue = [] |
267 | if value: | 267 | if value: |
@@ -289,6 +289,12 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, ignored_vars, d): | |||
289 | 289 | ||
290 | deps = set() | 290 | deps = set() |
291 | try: | 291 | try: |
292 | if key in mod_funcs: | ||
293 | exclusions = set() | ||
294 | moddep = bb.codeparser.modulecode_deps[key] | ||
295 | value = handle_contains("", moddep[3], exclusions, d) | ||
296 | return frozenset((moddep[0] | keys & moddep[1]) - ignored_vars), value | ||
297 | |||
292 | if key[-1] == ']': | 298 | if key[-1] == ']': |
293 | vf = key[:-1].split('[') | 299 | vf = key[:-1].split('[') |
294 | if vf[1] == "vardepvalueexclude": | 300 | if vf[1] == "vardepvalueexclude": |
@@ -367,7 +373,8 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, ignored_vars, d): | |||
367 | 373 | ||
368 | def generate_dependencies(d, ignored_vars): | 374 | def generate_dependencies(d, ignored_vars): |
369 | 375 | ||
370 | keys = set(key for key in d if not key.startswith("__")) | 376 | mod_funcs = set(bb.codeparser.modulecode_deps.keys()) |
377 | keys = set(key for key in d if not key.startswith("__")) | mod_funcs | ||
371 | shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False)) | 378 | shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False)) |
372 | varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS') | 379 | varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS') |
373 | 380 | ||
@@ -376,7 +383,7 @@ def generate_dependencies(d, ignored_vars): | |||
376 | 383 | ||
377 | tasklist = d.getVar('__BBTASKS', False) or [] | 384 | tasklist = d.getVar('__BBTASKS', False) or [] |
378 | for task in tasklist: | 385 | for task in tasklist: |
379 | deps[task], values[task] = build_dependencies(task, keys, shelldeps, varflagsexcl, ignored_vars, d) | 386 | deps[task], values[task] = build_dependencies(task, keys, mod_funcs, shelldeps, varflagsexcl, ignored_vars, d) |
380 | newdeps = deps[task] | 387 | newdeps = deps[task] |
381 | seen = set() | 388 | seen = set() |
382 | while newdeps: | 389 | while newdeps: |
@@ -385,7 +392,7 @@ def generate_dependencies(d, ignored_vars): | |||
385 | newdeps = set() | 392 | newdeps = set() |
386 | for dep in nextdeps: | 393 | for dep in nextdeps: |
387 | if dep not in deps: | 394 | if dep not in deps: |
388 | deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, varflagsexcl, ignored_vars, d) | 395 | deps[dep], values[dep] = build_dependencies(dep, keys, mod_funcs, shelldeps, varflagsexcl, ignored_vars, d) |
389 | newdeps |= deps[dep] | 396 | newdeps |= deps[dep] |
390 | newdeps -= seen | 397 | newdeps -= seen |
391 | #print "For %s: %s" % (task, str(deps[task])) | 398 | #print "For %s: %s" % (task, str(deps[task])) |