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)
downloadpoky-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):
143 break 143 break
144 except ExpansionError: 144 except ExpansionError:
145 raise 145 raise
146 except bb.parse.SkipPackage:
147 raise
146 except Exception as exc: 148 except Exception as exc:
147 raise ExpansionError(varname, s, exc) 149 raise ExpansionError(varname, s, exc)
148 150
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):
153 if ext != ".bbclass": 153 if ext != ".bbclass":
154 data.setVar('FILE', abs_fn, d) 154 data.setVar('FILE', abs_fn, d)
155 155
156 statements.eval(d) 156 try:
157 statements.eval(d)
158 except bb.parse.SkipPackage:
159 bb.data.setVar("__SKIPPED", True, d)
160 if include == 0:
161 return { "" : d }
157 162
158 if ext != ".bbclass" and include == 0: 163 if ext != ".bbclass" and include == 0:
159 return ast.multi_finalize(fn, d) 164 return ast.multi_finalize(fn, d)