aboutsummaryrefslogtreecommitdiffstats
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:35:51 +0000
commit7467d7d66b24cc8f43ab168e65895e7c4aee6092 (patch)
tree8ba76719d69792cf8b35ec8f8437a6dd6bb5ded2
parent3a1b75037fe1e5282ffd40b037e93353405faa45 (diff)
downloadbitbake-7467d7d66b24cc8f43ab168e65895e7c4aee6092.tar.gz
bitbake-7467d7d66b24cc8f43ab168e65895e7c4aee6092.tar.bz2
bitbake-7467d7d66b24cc8f43ab168e65895e7c4aee6092.zip
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/data_smart.py2
-rw-r--r--lib/bb/parse/parse_py/BBHandler.py7
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index fb8d9d53c..d32840090 100644
--- a/lib/bb/data_smart.py
+++ b/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/lib/bb/parse/parse_py/BBHandler.py b/lib/bb/parse/parse_py/BBHandler.py
index e6039e11a..2ee8ebd28 100644
--- a/lib/bb/parse/parse_py/BBHandler.py
+++ b/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)