aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bb/data.py
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-04-03 11:19:03 +1200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-04-05 09:23:48 +0100
commit272f1245acdd4fb85cb78612aa03627a9c246d8f (patch)
tree44e0a3fd155dca5af6d869efbc46f7cf7910f255 /lib/bb/data.py
parent0476ec4605c94b9e0208cfd3fa48ecf3e3f04181 (diff)
downloadbitbake-272f1245acdd4fb85cb78612aa03627a9c246d8f.tar.gz
lib/bb/data: fix dependency handling for contains and multiple values
The code that determines variable dependencies uses the codeparser to find references to "contains" type operations e.g. bb.utils.contains(). That function can take multiple items to check, and all specified items have to be present. However this code didn't handle that - it assumed that only one item would be specified and thus it was treating the multiple items as a single item with spaces in between. Split the value and check if all words are present in order to determine whether the check is "set" or "unset". Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/data.py')
-rw-r--r--lib/bb/data.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/bb/data.py b/lib/bb/data.py
index a85cb3abf..0403754de 100644
--- a/lib/bb/data.py
+++ b/lib/bb/data.py
@@ -296,11 +296,13 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
newvalue = ""
for k in sorted(contains):
l = (d.getVar(k) or "").split()
- for word in sorted(contains[k]):
- if word in l:
- newvalue += "\n%s{%s} = Set" % (k, word)
+ for item in sorted(contains[k]):
+ for word in item.split():
+ if not word in l:
+ newvalue += "\n%s{%s} = Unset" % (k, item)
+ break
else:
- newvalue += "\n%s{%s} = Unset" % (k, word)
+ newvalue += "\n%s{%s} = Set" % (k, item)
if not newvalue:
return value
if not value: