diff options
Diffstat (limited to 'bitbake/lib/bb/ui/crumbs/hobeventhandler.py')
| -rw-r--r-- | bitbake/lib/bb/ui/crumbs/hobeventhandler.py | 26 |
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 | ||
| 21 | import gobject | 21 | import gobject |
| 22 | import logging | 22 | import logging |
| 23 | import tempfile | ||
| 24 | import datetime | ||
| 23 | 25 | ||
| 24 | progress_total = 0 | 26 | progress_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 | ||
