aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/bb/event.py10
-rw-r--r--lib/bb/parse/ast.py15
-rw-r--r--lib/bb/ui/knotty.py1
3 files changed, 17 insertions, 9 deletions
diff --git a/lib/bb/event.py b/lib/bb/event.py
index a3288b619..7d47edb9e 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -206,13 +206,17 @@ def getName(e):
class ConfigParsed(Event):
"""Configuration Parsing Complete"""
-class RecipeParsed(Event):
- """ Recipe Parsing Complete """
-
+class RecipeEvent(Event):
def __init__(self, fn):
self.fn = fn
Event.__init__(self)
+class RecipePreFinalise(RecipeEvent):
+ """ Recipe Parsing Complete but not yet finialised"""
+
+class RecipeParsed(RecipeEvent):
+ """ Recipe Parsing Complete """
+
class StampUpdate(Event):
"""Trigger for any adjustment of the stamp files to happen"""
diff --git a/lib/bb/parse/ast.py b/lib/bb/parse/ast.py
index 547ea679b..1180911a7 100644
--- a/lib/bb/parse/ast.py
+++ b/lib/bb/parse/ast.py
@@ -308,12 +308,6 @@ def handleInherit(statements, filename, lineno, m):
def finalize(fn, d, variant = None):
bb.data.expandKeys(d)
- bb.data.update_data(d)
- code = []
- for funcname in bb.data.getVar("__BBANONFUNCS", d) or []:
- code.append("%s(d)" % funcname)
- bb.utils.simple_exec("\n".join(code), {"d": d})
- bb.data.update_data(d)
all_handlers = {}
for var in bb.data.getVar('__BBHANDLERS', d) or []:
@@ -321,6 +315,15 @@ def finalize(fn, d, variant = None):
handler = bb.data.getVar(var, d)
bb.event.register(var, handler)
+ bb.event.fire(bb.event.RecipePreFinalise(fn), d)
+
+ bb.data.update_data(d)
+ code = []
+ for funcname in bb.data.getVar("__BBANONFUNCS", d) or []:
+ code.append("%s(d)" % funcname)
+ bb.utils.simple_exec("\n".join(code), {"d": d})
+ bb.data.update_data(d)
+
tasklist = bb.data.getVar('__BBTASKS', d) or []
bb.build.add_tasks(tasklist, d)
diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
index f330c084d..997eb3fe8 100644
--- a/lib/bb/ui/knotty.py
+++ b/lib/bb/ui/knotty.py
@@ -228,6 +228,7 @@ def main(server, eventHandler):
bb.event.StampUpdate,
bb.event.ConfigParsed,
bb.event.RecipeParsed,
+ bb.event.RecipePreFinalise,
bb.runqueue.runQueueEvent,
bb.runqueue.runQueueExitWait)):
continue