[bitbake-devel] [PATCH 2/4] ui/crumbs/hobeventhandler: don't check BBPATH and BBFILES each build

Joshua Lock josh at linux.intel.com
Tue Sep 13 16:21:07 UTC 2011


There's no need to check the BBPATH and BBFILES are set correctly each
build when running multiple builds for one launch of the UI.

Partially addresses [YOCTO #1468]

Signed-off-by: Joshua Lock <josh at linux.intel.com>
---
 lib/bb/ui/crumbs/hobeventhandler.py |   39 ++++++++++++++++++-----------------
 1 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/lib/bb/ui/crumbs/hobeventhandler.py b/lib/bb/ui/crumbs/hobeventhandler.py
index 4ed6590..8bf599f 100644
--- a/lib/bb/ui/crumbs/hobeventhandler.py
+++ b/lib/bb/ui/crumbs/hobeventhandler.py
@@ -77,6 +77,8 @@ class HobHandler(gobject.GObject):
         self.generating = False
         self.build_queue = []
         self.current_phase = None
+        self.bbpath_ok = False
+        self.bbfiles_ok = False
         self.image_dir = os.path.join(tempfile.gettempdir(), 'hob-images')
 
         self.model = taskmodel
@@ -247,6 +249,8 @@ class HobHandler(gobject.GObject):
 
     def build_image(self, image, configurator):
         targets = []
+        nbbp = None
+        nbbf = None
         targets.append(image)
         if self.build_toolchain and self.build_toolchain_headers:
             targets.append("meta-toolchain-sdk")
@@ -254,31 +258,28 @@ class HobHandler(gobject.GObject):
             targets.append("meta-toolchain")
         self.build_queue = targets
 
-        bbpath_ok = False
-        bbpath = self.server.runCommand(["getVariable", "BBPATH"])
-        if self.image_dir in bbpath.split(":"):
-            bbpath_ok = True
+        if not self.bbpath_ok:
+            bbpath = self.server.runCommand(["getVariable", "BBPATH"])
+            if self.image_dir in bbpath.split(":"):
+                self.bbpath_ok = True
+            else:
+                nbbp = self.image_dir
 
-        bbfiles_ok = False
-        bbfiles = self.server.runCommand(["getVariable", "BBFILES"]).split(" ")
-        for files in bbfiles:
+        if not self.bbfiles_ok:
             import re
             pattern = "%s/\*.bb" % self.image_dir
-            if re.match(pattern, files):
-                bbfiles_ok = True
-
-        if not bbpath_ok:
-            nbbp = self.image_dir
-        else:
-            nbbp = None
+            bbfiles = self.server.runCommand(["getVariable", "BBFILES"]).split(" ")
+            for files in bbfiles:
+                if re.match(pattern, files):
+                    self.bbfiles_ok = True
 
-        if not bbfiles_ok:
-            nbbf = "%s/*.bb" % self.image_dir
-        else:
-            nbbf = None
+            if not self.bbfiles_ok:
+                nbbf = "%s/*.bb" % self.image_dir
 
-        if not bbfiles_ok or not bbpath_ok:
+        if nbbp or nbbf:
             configurator.insertTempBBPath(nbbp, nbbf)
+            self.bbpath_ok = True
+            self.bbfiles_ok = True
 
         self.current_command = self.REPARSE_FILES
         self.run_next_command()
-- 
1.7.6





More information about the bitbake-devel mailing list