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>
This commit is contained in:
Richard Purdie 2012-07-04 15:47:52 +00:00
parent bf9a8ec7f2
commit 136751122a
1 changed files with 6 additions and 1 deletions

View File

@ -198,7 +198,12 @@ class DataSmart(MutableMapping):
for append in appends:
keep = []
for (a, o) in self.getVarFlag(append, op) or []:
if o and not o in overrides:
match = True
if o:
for o2 in o.split("_"):
if not o2 in overrides:
match = False
if not match:
keep.append((a ,o))
continue