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.py15
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
264def build_dependencies(key, keys, shelldeps, varflagsexcl, ignored_vars, d): 264def 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
368def generate_dependencies(d, ignored_vars): 374def 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]))