summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-14 12:33:01 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-14 12:36:04 +0000
commit853d707af541981190a476bd078837c0e19b53b3 (patch)
tree78dafd2218034b0d8614473afd819a34638ef8a9
parent5d968368bc8b5813b0579910e23bd50fa6bd874b (diff)
downloadopenembedded-core-contrib-853d707af541981190a476bd078837c0e19b53b3.tar.gz
bitbake: data_smart/BBHandler: Fix SkipParse exception handling
If SkipParse is raised from something which isn't anonymous python, it wasn't being handled correctly. This improves the handling for example from within inline python. (Bitbake rev: 7467d7d66b24cc8f43ab168e65895e7c4aee6092) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/data_smart.py2
-rw-r--r--bitbake/lib/bb/parse/parse_py/BBHandler.py7
2 files changed, 8 insertions, 1 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index fb8d9d53c0..d328400903 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -143,6 +143,8 @@ class DataSmart(MutableMapping):
break
except ExpansionError:
raise
+ except bb.parse.SkipPackage:
+ raise
except Exception as exc:
raise ExpansionError(varname, s, exc)
diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py
index e6039e11a2..2ee8ebd28f 100644
--- a/bitbake/lib/bb/parse/parse_py/BBHandler.py
+++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py
@@ -153,7 +153,12 @@ def handle(fn, d, include):
if ext != ".bbclass":
data.setVar('FILE', abs_fn, d)
- statements.eval(d)
+ try:
+ statements.eval(d)
+ except bb.parse.SkipPackage:
+ bb.data.setVar("__SKIPPED", True, d)
+ if include == 0:
+ return { "" : d }
if ext != ".bbclass" and include == 0:
return ast.multi_finalize(fn, d)