diff options
| -rw-r--r-- | bitbake/lib/bb/data.py | 20 | ||||
| -rw-r--r-- | bitbake/lib/bb/siggen.py | 4 |
2 files changed, 23 insertions, 1 deletions
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py index c0636e10e8..e3ffefeb36 100644 --- a/bitbake/lib/bb/data.py +++ b/bitbake/lib/bb/data.py | |||
| @@ -279,7 +279,12 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d): | |||
| 279 | deps = set() | 279 | deps = set() |
| 280 | vardeps = d.getVarFlag(key, "vardeps", True) | 280 | vardeps = d.getVarFlag(key, "vardeps", True) |
| 281 | try: | 281 | try: |
| 282 | value = d.getVar(key, False) | 282 | if key[-1] == ']': |
| 283 | vf = key[:-1].split('[') | ||
| 284 | value = d.getVarFlag(vf[0], vf[1], False) | ||
| 285 | else: | ||
| 286 | value = d.getVar(key, False) | ||
| 287 | |||
| 283 | if key in vardepvals: | 288 | if key in vardepvals: |
| 284 | value = d.getVarFlag(key, "vardepvalue", True) | 289 | value = d.getVarFlag(key, "vardepvalue", True) |
| 285 | elif d.getVarFlag(key, "func"): | 290 | elif d.getVarFlag(key, "func"): |
| @@ -301,6 +306,19 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d): | |||
| 301 | parser = d.expandWithRefs(value, key) | 306 | parser = d.expandWithRefs(value, key) |
| 302 | deps |= parser.references | 307 | deps |= parser.references |
| 303 | deps = deps | (keys & parser.execs) | 308 | deps = deps | (keys & parser.execs) |
| 309 | |||
| 310 | # Add varflags, assuming an exclusion list is set | ||
| 311 | varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS', True) | ||
| 312 | if varflagsexcl: | ||
| 313 | varfdeps = [] | ||
| 314 | varflags = d.getVarFlags(key) | ||
| 315 | if varflags: | ||
| 316 | for f in varflags: | ||
| 317 | if f not in varflagsexcl: | ||
| 318 | varfdeps.append('%s[%s]' % (key, f)) | ||
| 319 | if varfdeps: | ||
| 320 | deps |= set(varfdeps) | ||
| 321 | |||
| 304 | deps |= set((vardeps or "").split()) | 322 | deps |= set((vardeps or "").split()) |
| 305 | deps -= set((d.getVarFlag(key, "vardepsexclude", True) or "").split()) | 323 | deps -= set((d.getVarFlag(key, "vardepsexclude", True) or "").split()) |
| 306 | except: | 324 | except: |
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index daf56770f9..c4b7c3992e 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
| @@ -108,6 +108,10 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
| 108 | data = data + dep | 108 | data = data + dep |
| 109 | if dep in lookupcache: | 109 | if dep in lookupcache: |
| 110 | var = lookupcache[dep] | 110 | var = lookupcache[dep] |
| 111 | elif dep[-1] == ']': | ||
| 112 | vf = dep[:-1].split('[') | ||
| 113 | var = d.getVarFlag(vf[0], vf[1], False) | ||
| 114 | lookupcache[dep] = var | ||
| 111 | else: | 115 | else: |
| 112 | var = d.getVar(dep, False) | 116 | var = d.getVar(dep, False) |
| 113 | lookupcache[dep] = var | 117 | lookupcache[dep] = var |
