bitbake: data: Optimise flag exclusion list handling

Move the variable lookup to the outer loop for performance, replacing
a now unneeded parameter (after the previous changes).

(Bitbake rev: 8a59a8707cecbde257fca169775ce8ff7709928b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2013-09-16 07:54:58 +00:00
parent 9a32eca022
commit d15652d78c
1 changed files with 4 additions and 5 deletions

View File

@ -285,7 +285,7 @@ def update_data(d):
"""Performs final steps upon the datastore, including application of overrides""" """Performs final steps upon the datastore, including application of overrides"""
d.finalize(parent = True) d.finalize(parent = True)
def build_dependencies(key, keys, shelldeps, vardepvals, d): def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
deps = set() deps = set()
try: try:
if key[-1] == ']': if key[-1] == ']':
@ -324,7 +324,6 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d):
deps = deps | (keys & parser.execs) deps = deps | (keys & parser.execs)
# Add varflags, assuming an exclusion list is set # Add varflags, assuming an exclusion list is set
varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS', True)
if varflagsexcl: if varflagsexcl:
varfdeps = [] varfdeps = []
for f in varflags: for f in varflags:
@ -345,14 +344,14 @@ def generate_dependencies(d):
keys = set(key for key in d if not key.startswith("__")) keys = set(key for key in d if not key.startswith("__"))
shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export") and not d.getVarFlag(key, "unexport")) shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export") and not d.getVarFlag(key, "unexport"))
vardepvals = set(key for key in keys if d.getVarFlag(key, "vardepvalue")) varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS', True)
deps = {} deps = {}
values = {} values = {}
tasklist = d.getVar('__BBTASKS') or [] tasklist = d.getVar('__BBTASKS') or []
for task in tasklist: for task in tasklist:
deps[task], values[task] = build_dependencies(task, keys, shelldeps, vardepvals, d) deps[task], values[task] = build_dependencies(task, keys, shelldeps, varflagsexcl, d)
newdeps = deps[task] newdeps = deps[task]
seen = set() seen = set()
while newdeps: while newdeps:
@ -361,7 +360,7 @@ def generate_dependencies(d):
newdeps = set() newdeps = set()
for dep in nextdeps: for dep in nextdeps:
if dep not in deps: if dep not in deps:
deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, vardepvals, d) deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, varflagsexcl, d)
newdeps |= deps[dep] newdeps |= deps[dep]
newdeps -= seen newdeps -= seen
#print "For %s: %s" % (task, str(deps[task])) #print "For %s: %s" % (task, str(deps[task]))