diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-07-04 15:47:52 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-07-05 12:36:45 +0100 |
commit | 136751122a1c7f192f3c2da299fa2622a3010396 (patch) | |
tree | d3275f8bba8ed99d4e34489a0431ec269661fb97 /bitbake | |
parent | bf9a8ec7f2d2a1055c7eafa50d8af01ec1d4dc26 (diff) | |
download | poky-136751122a1c7f192f3c2da299fa2622a3010396.tar.gz |
bitbake: data_smart: Fix multiple override interaction with append and prepend operators
Variables which used multiple overrides and the append/prepend operators were
not functioning correctly. This change fixes that.
This fixes the testcase:
OVERRIDES = "linux:x86"
TESTVAR = "original"
TESTVAR_append_x86 = " x86"
TESTVAR_append_x86_linux = " x86+linux"
TESTVAR_append_linux_x86 = " linux+x86"
[YOCTO #2672]
(Bitbake rev: dc35a2e506e15fb7ddbf74c3b3280e9e83ab33bb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/data_smart.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 2c02cdeabf..730deaaaf2 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py | |||
@@ -198,7 +198,12 @@ class DataSmart(MutableMapping): | |||
198 | for append in appends: | 198 | for append in appends: |
199 | keep = [] | 199 | keep = [] |
200 | for (a, o) in self.getVarFlag(append, op) or []: | 200 | for (a, o) in self.getVarFlag(append, op) or []: |
201 | if o and not o in overrides: | 201 | match = True |
202 | if o: | ||
203 | for o2 in o.split("_"): | ||
204 | if not o2 in overrides: | ||
205 | match = False | ||
206 | if not match: | ||
202 | keep.append((a ,o)) | 207 | keep.append((a ,o)) |
203 | continue | 208 | continue |
204 | 209 | ||