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])) |
