diff options
Diffstat (limited to 'bitbake/lib/bb/data.py')
-rw-r--r-- | bitbake/lib/bb/data.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py index bdd1e79e24..3d2c6a4975 100644 --- a/bitbake/lib/bb/data.py +++ b/bitbake/lib/bb/data.py | |||
@@ -299,6 +299,21 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d): | |||
299 | vardeps = varflags.get("vardeps") | 299 | vardeps = varflags.get("vardeps") |
300 | value = d.getVar(key, False) | 300 | value = d.getVar(key, False) |
301 | 301 | ||
302 | def handle_contains(value, contains, d): | ||
303 | newvalue = "" | ||
304 | for k in contains: | ||
305 | l = (d.getVar(k, True) or "").split() | ||
306 | for word in contains[k]: | ||
307 | if word in l: | ||
308 | newvalue += "\n%s{%s} = Set" % (k, word) | ||
309 | else: | ||
310 | newvalue += "\n%s{%s} = Unset" % (k, word) | ||
311 | if not newvalue: | ||
312 | return value | ||
313 | if not value: | ||
314 | return newvalue | ||
315 | return value + newvalue | ||
316 | |||
302 | if "vardepvalue" in varflags: | 317 | if "vardepvalue" in varflags: |
303 | value = varflags.get("vardepvalue") | 318 | value = varflags.get("vardepvalue") |
304 | elif varflags.get("func"): | 319 | elif varflags.get("func"): |
@@ -309,6 +324,7 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d): | |||
309 | logger.warn("Variable %s contains tabs, please remove these (%s)" % (key, d.getVar("FILE", True))) | 324 | logger.warn("Variable %s contains tabs, please remove these (%s)" % (key, d.getVar("FILE", True))) |
310 | parser.parse_python(parsedvar.value) | 325 | parser.parse_python(parsedvar.value) |
311 | deps = deps | parser.references | 326 | deps = deps | parser.references |
327 | value = handle_contains(value, parser.contains, d) | ||
312 | else: | 328 | else: |
313 | parsedvar = d.expandWithRefs(value, key) | 329 | parsedvar = d.expandWithRefs(value, key) |
314 | parser = bb.codeparser.ShellParser(key, logger) | 330 | parser = bb.codeparser.ShellParser(key, logger) |
@@ -318,10 +334,12 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d): | |||
318 | parser.log.flush() | 334 | parser.log.flush() |
319 | deps = deps | parsedvar.references | 335 | deps = deps | parsedvar.references |
320 | deps = deps | (keys & parser.execs) | (keys & parsedvar.execs) | 336 | deps = deps | (keys & parser.execs) | (keys & parsedvar.execs) |
337 | value = handle_contains(value, parsedvar.contains, d) | ||
321 | else: | 338 | else: |
322 | parser = d.expandWithRefs(value, key) | 339 | parser = d.expandWithRefs(value, key) |
323 | deps |= parser.references | 340 | deps |= parser.references |
324 | deps = deps | (keys & parser.execs) | 341 | deps = deps | (keys & parser.execs) |
342 | value = handle_contains(value, parser.contains, d) | ||
325 | 343 | ||
326 | # Add varflags, assuming an exclusion list is set | 344 | # Add varflags, assuming an exclusion list is set |
327 | if varflagsexcl: | 345 | if varflagsexcl: |