diff options
-rw-r--r-- | bitbake/lib/bb/event.py | 10 | ||||
-rw-r--r-- | bitbake/lib/bb/parse/ast.py | 3 |
2 files changed, 13 insertions, 0 deletions
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index a12adbc937..b29f0a5568 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py | |||
@@ -431,6 +431,16 @@ class RecipeEvent(Event): | |||
431 | self.fn = fn | 431 | self.fn = fn |
432 | Event.__init__(self) | 432 | Event.__init__(self) |
433 | 433 | ||
434 | class RecipePreDeferredInherits(RecipeEvent): | ||
435 | """ | ||
436 | Called before deferred inherits are processed so code can snoop on class extensions for example | ||
437 | Limitations: It won't see inherits of inherited classes and the data is unexpanded | ||
438 | """ | ||
439 | def __init__(self, fn, inherits): | ||
440 | self.fn = fn | ||
441 | self.inherits = inherits | ||
442 | Event.__init__(self) | ||
443 | |||
434 | class RecipePreFinalise(RecipeEvent): | 444 | class RecipePreFinalise(RecipeEvent): |
435 | """ Recipe Parsing Complete but not yet finalised""" | 445 | """ Recipe Parsing Complete but not yet finalised""" |
436 | 446 | ||
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index f9998798d8..5a086b4e95 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py | |||
@@ -471,6 +471,9 @@ def finalize(fn, d, variant = None): | |||
471 | if d.getVar("_FAILPARSINGERRORHANDLED", False) == True: | 471 | if d.getVar("_FAILPARSINGERRORHANDLED", False) == True: |
472 | raise bb.BBHandledException() | 472 | raise bb.BBHandledException() |
473 | 473 | ||
474 | inherits = [x[0] for x in (d.getVar('__BBDEFINHERITS', False) or [('',)])] | ||
475 | bb.event.fire(bb.event.RecipePreDeferredInherits(fn, inherits), d) | ||
476 | |||
474 | while True: | 477 | while True: |
475 | inherits = d.getVar('__BBDEFINHERITS', False) or [] | 478 | inherits = d.getVar('__BBDEFINHERITS', False) or [] |
476 | if not inherits: | 479 | if not inherits: |