summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-12 13:25:36 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-19 15:22:00 +0000
commit4dcd0e53f5ff4bf4f2d6cbdc51ff33a5f5f206af (patch)
treeb052330d9ea804b447513d5db6d6406f723f8e4b /lib
parentc53e43f3c6a675c0934a7a4e358fd66b049ffca3 (diff)
downloadbitbake-contrib-4dcd0e53f5ff4bf4f2d6cbdc51ff33a5f5f206af.tar.gz
event/ast: Add RecipeTaskPreProcess event before task finalisation
There are various pieces of code which need to run after the tasks are finalised but before bitbake locks in on the task dependencies. This adds such an event so dependency changes in anonymous python can be accounted for and acted upon by these specific event handlers. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/bb/event.py11
-rw-r--r--lib/bb/parse/ast.py1
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/bb/event.py b/lib/bb/event.py
index e2ca33ea6..6d8493b17 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -361,6 +361,17 @@ class RecipeEvent(Event):
class RecipePreFinalise(RecipeEvent):
""" Recipe Parsing Complete but not yet finialised"""
+class RecipeTaskPreProcess(RecipeEvent):
+ """
+ Recipe Tasks about to be finalised
+ The list of tasks should be final at this point and handlers
+ are only able to change interdependencies
+ """
+ def __init__(self, fn, tasklist):
+ self.fn = fn
+ self.tasklist = tasklist
+ Event.__init__(self)
+
class RecipeParsed(RecipeEvent):
""" Recipe Parsing Complete """
diff --git a/lib/bb/parse/ast.py b/lib/bb/parse/ast.py
index 853dda86b..8b5b36619 100644
--- a/lib/bb/parse/ast.py
+++ b/lib/bb/parse/ast.py
@@ -358,6 +358,7 @@ def finalize(fn, d, variant = None):
bb.data.update_data(d)
tasklist = d.getVar('__BBTASKS', False) or []
+ bb.event.fire(bb.event.RecipeTaskPreProcess(fn, list(tasklist)), d)
bb.build.add_tasks(tasklist, d)
bb.parse.siggen.finalise(fn, d, variant)