summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-04 15:47:52 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-05 12:35:24 +0100
commitdc35a2e506e15fb7ddbf74c3b3280e9e83ab33bb (patch)
tree78f0008048128c6bcbc7ff25441d8b931a88a3c4 /lib
parent4962a59793504b26b06cf058dda600a07fbbd951 (diff)
downloadbitbake-dc35a2e506e15fb7ddbf74c3b3280e9e83ab33bb.tar.gz
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] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/bb/data_smart.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index 2c02cdeab..730deaaaf 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -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