summaryrefslogtreecommitdiffstats
path: root/lib/bb/parse
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-09 17:30:17 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-09 22:42:20 +0100
commita981df3cc9bf410d24f39919959952bdc6c76d03 (patch)
tree7377a17bf8049710b6335eef4be622c402238bdd /lib/bb/parse
parentf22ac9149cc9ab96510bb377deb82cd9bceb95c1 (diff)
downloadbitbake-a981df3cc9bf410d24f39919959952bdc6c76d03.tar.gz
bitbake/event/ast: Add RecipePreFinalise event
One of the implications is we need to register the event handlers before executing the anonymous python functions. I can't find any issue with making that change in any existing metadata use cases. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/parse')
-rw-r--r--lib/bb/parse/ast.py15
1 files changed, 9 insertions, 6 deletions
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)