summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/ui/crumbs/hobeventhandler.py')
-rw-r--r--bitbake/lib/bb/ui/crumbs/hobeventhandler.py26
1 files changed, 21 insertions, 5 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
index 0b5b31808c..e8265f1136 100644
--- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
+++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
@@ -20,6 +20,8 @@
20 20
21import gobject 21import gobject
22import logging 22import logging
23import tempfile
24import datetime
23 25
24progress_total = 0 26progress_total = 0
25 27
@@ -75,6 +77,7 @@ class HobHandler(gobject.GObject):
75 self.generating = False 77 self.generating = False
76 self.build_queue = [] 78 self.build_queue = []
77 self.current_phase = None 79 self.current_phase = None
80 self.image_dir = None
78 81
79 self.model = taskmodel 82 self.model = taskmodel
80 self.server = server 83 self.server = server
@@ -237,7 +240,7 @@ class HobHandler(gobject.GObject):
237 pmake = "-j %s" % threads 240 pmake = "-j %s" % threads
238 self.server.runCommand(["setVariable", "BB_NUMBER_THREADS", pmake]) 241 self.server.runCommand(["setVariable", "BB_NUMBER_THREADS", pmake])
239 242
240 def build_image(self, image, image_path, configurator): 243 def build_image(self, image, configurator):
241 targets = [] 244 targets = []
242 targets.append(image) 245 targets.append(image)
243 if self.build_toolchain and self.build_toolchain_headers: 246 if self.build_toolchain and self.build_toolchain_headers:
@@ -248,24 +251,24 @@ class HobHandler(gobject.GObject):
248 251
249 bbpath_ok = False 252 bbpath_ok = False
250 bbpath = self.server.runCommand(["getVariable", "BBPATH"]) 253 bbpath = self.server.runCommand(["getVariable", "BBPATH"])
251 if image_path in bbpath.split(":"): 254 if self.image_dir in bbpath.split(":"):
252 bbpath_ok = True 255 bbpath_ok = True
253 256
254 bbfiles_ok = False 257 bbfiles_ok = False
255 bbfiles = self.server.runCommand(["getVariable", "BBFILES"]).split(" ") 258 bbfiles = self.server.runCommand(["getVariable", "BBFILES"]).split(" ")
256 for files in bbfiles: 259 for files in bbfiles:
257 import re 260 import re
258 pattern = "%s/\*.bb" % image_path 261 pattern = "%s/\*.bb" % self.image_dir
259 if re.match(pattern, files): 262 if re.match(pattern, files):
260 bbfiles_ok = True 263 bbfiles_ok = True
261 264
262 if not bbpath_ok: 265 if not bbpath_ok:
263 nbbp = image_path 266 nbbp = self.image_dir
264 else: 267 else:
265 nbbp = None 268 nbbp = None
266 269
267 if not bbfiles_ok: 270 if not bbfiles_ok:
268 nbbf = "%s/*.bb" % image_path 271 nbbf = "%s/*.bb" % self.image_dir
269 else: 272 else:
270 nbbf = None 273 nbbf = None
271 274
@@ -319,3 +322,16 @@ class HobHandler(gobject.GObject):
319 322
320 def get_image_deploy_dir(self): 323 def get_image_deploy_dir(self):
321 return self.server.runCommand(["getVariable", "DEPLOY_DIR_IMAGE"]) 324 return self.server.runCommand(["getVariable", "DEPLOY_DIR_IMAGE"])
325
326 def make_temp_dir(self):
327 self.image_dir = os.path.join(tempfile.gettempdir(), 'hob-images')
328 bb.utils.mkdirhier(self.image_dir)
329
330 def remove_temp_dir(self):
331 bb.utils.remove(self.image_dir, True)
332
333 def get_temp_recipe_path(self, name):
334 timestamp = datetime.date.today().isoformat()
335 image_file = "hob-%s-variant-%s.bb" % (name, timestamp)
336 recipepath = os.path.join(self.image_dir, image_file)
337 return recipepath