From: Adrian Freihofer <[email protected]>

Add IdeBase.initialize_modified_recipe() plugin hook which allows IDE
plugins to run code at recipe initialization time within the shared
tinfoil session.

Default implementation is a no-op, so existing IDE plugins are
unaffected.

Signed-off-by: Adrian Freihofer <[email protected]>
---
 scripts/lib/devtool/ide_plugins/__init__.py | 4 ++++
 scripts/lib/devtool/ide_sdk.py              | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/scripts/lib/devtool/ide_plugins/__init__.py 
b/scripts/lib/devtool/ide_plugins/__init__.py
index bc0b2ca9b7..333ec9bac8 100644
--- a/scripts/lib/devtool/ide_plugins/__init__.py
+++ b/scripts/lib/devtool/ide_plugins/__init__.py
@@ -353,6 +353,10 @@ class IdeBase:
         logger.warn("Shared sysroot mode is not supported for IDE %s" %
                     self.ide_name)
 
+    def initialize_modified_recipe(self, config, tinfoil, recipe_modified):
+        """Hook called once per modified recipe, inside the shared tinfoil 
session"""
+        pass
+
     def setup_modified_recipe(self, args, image_recipe, modified_recipe):
         logger.warn("Modified recipe mode is not supported for IDE %s" %
                     self.ide_name)
diff --git a/scripts/lib/devtool/ide_sdk.py b/scripts/lib/devtool/ide_sdk.py
index 14271ae871..d47906700b 100755
--- a/scripts/lib/devtool/ide_sdk.py
+++ b/scripts/lib/devtool/ide_sdk.py
@@ -1746,6 +1746,7 @@ def ide_setup(args, config, basepath, workspace):
         config, args.recipenames)
     orig_recipe_bbappend_contents = RecipeModified.strip_bbappend_sections(
         config, args.recipenames)
+    ide = ide_plugins[args.ide]()
     tinfoil = setup_tinfoil(config_only=False, basepath=basepath)
     try:
         # define mode depending on recipes which need to be processed
@@ -1868,6 +1869,7 @@ def ide_setup(args, config, basepath, workspace):
                 recipe_modified = RecipeModified(
                     recipe_name, 
orig_recipe_bbappend_contents.get(recipe_name))
                 recipe_modified.initialize(config, workspace, tinfoil)
+                ide.initialize_modified_recipe(config, tinfoil, 
recipe_modified)
                 bootstrap_tasks += recipe_modified.bootstrap_tasks
                 recipes_modified.append(recipe_modified)
 
@@ -1926,8 +1928,6 @@ def ide_setup(args, config, basepath, workspace):
                 config.init_path, basepath,
                 bb_cmd + ' '.join(bootstrap_tasks_late), watch=True)
 
-    # Instantiate the active IDE plugin
-    ide = ide_plugins[args.ide]()
     if args.mode == DevtoolIdeMode.shared:
         ide.setup_shared_sysroots(shared_env)
     elif args.mode == DevtoolIdeMode.modified:
-- 
2.55.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#245723): 
https://lists.openembedded.org/g/openembedded-core/message/245723
Mute This Topic: https://lists.openembedded.org/mt/121232358/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to