diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py index fb8d9d53c0..739864df6d 100644 --- a/lib/bb/data_smart.py +++ b/lib/bb/data_smart.py @@ -141,6 +141,8 @@ def expandWithRefs(self, s, varname): s = __expand_python_regexp__.sub(varparse.python_sub, s) if s == olds: break + except bb.parse.SkipPackage: + raise except ExpansionError: raise except Exception as exc: diff --git a/lib/bb/parse/parse_py/BBHandler.py b/lib/bb/parse/parse_py/BBHandler.py index 2e0647b5df..f2adea38f1 100644 --- a/lib/bb/parse/parse_py/BBHandler.py +++ b/lib/bb/parse/parse_py/BBHandler.py @@ -148,10 +148,18 @@ 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 ext == ".bbclass": classes.remove(__classname__) + elif bb.data.getVar("__SKIPPED", d, True): + if include == 0: + return { "" : d } + else: + return d else: if include == 0: return ast.multi_finalize(fn, d)