diff options
author | Joshua Lock <josh@linux.intel.com> | 2011-09-19 15:25:45 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-09-20 22:24:10 +0100 |
commit | 081990b2a3d27c83f17d79265d0c77271e9d6638 (patch) | |
tree | 16d67549a19232ce5363cf19873af6a6b41e84e6 /bitbake/lib/bb | |
parent | 8ebca0c5a85de618b82d1c0e2f526f9c75e3ae68 (diff) | |
download | poky-081990b2a3d27c83f17d79265d0c77271e9d6638.tar.gz |
hob: fix build again when building packages only
The different code paths for package vs image builds have lead to some bit
rot in the package only build and an incompatability between package only
builds and the build again mechanism.
This patch unifies the code paths and fixes build again for package only
builds.
Fixes [YOCTO #1480]
(Bitbake rev: ab6c63f35739c30df0e8a9d0f1ae982b96e538ed)
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/ui/crumbs/hobeventhandler.py | 13 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/hob.py | 11 |
2 files changed, 12 insertions, 12 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py index 8bf599ff64..393b40707c 100644 --- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py +++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py | |||
@@ -71,7 +71,7 @@ class HobHandler(gobject.GObject): | |||
71 | gobject.GObject.__init__(self) | 71 | gobject.GObject.__init__(self) |
72 | 72 | ||
73 | self.current_command = None | 73 | self.current_command = None |
74 | self.building = None | 74 | self.building = False |
75 | self.build_toolchain = False | 75 | self.build_toolchain = False |
76 | self.build_toolchain_headers = False | 76 | self.build_toolchain_headers = False |
77 | self.generating = False | 77 | self.generating = False |
@@ -128,10 +128,10 @@ class HobHandler(gobject.GObject): | |||
128 | self.server.runCommand(["resetCooker"]) | 128 | self.server.runCommand(["resetCooker"]) |
129 | self.server.runCommand(["reparseFiles"]) | 129 | self.server.runCommand(["reparseFiles"]) |
130 | elif self.current_command == self.BUILD_IMAGE: | 130 | elif self.current_command == self.BUILD_IMAGE: |
131 | self.building = "image" | ||
132 | if self.generating: | 131 | if self.generating: |
133 | self.emit("data-generated") | 132 | self.emit("data-generated") |
134 | self.generating = False | 133 | self.generating = False |
134 | self.building = True | ||
135 | self.server.runCommand(["buildTargets", self.build_queue, "build"]) | 135 | self.server.runCommand(["buildTargets", self.build_queue, "build"]) |
136 | self.build_queue = [] | 136 | self.build_queue = [] |
137 | self.current_command = None | 137 | self.current_command = None |
@@ -247,11 +247,12 @@ class HobHandler(gobject.GObject): | |||
247 | pmake = "-j %s" % threads | 247 | pmake = "-j %s" % threads |
248 | self.server.runCommand(["setVariable", "BB_NUMBER_THREADS", pmake]) | 248 | self.server.runCommand(["setVariable", "BB_NUMBER_THREADS", pmake]) |
249 | 249 | ||
250 | def build_image(self, image, configurator): | 250 | def build_targets(self, tgts, configurator, build_type="image"): |
251 | self.build_type = build_type | ||
251 | targets = [] | 252 | targets = [] |
252 | nbbp = None | 253 | nbbp = None |
253 | nbbf = None | 254 | nbbf = None |
254 | targets.append(image) | 255 | targets.extend(tgts) |
255 | if self.build_toolchain and self.build_toolchain_headers: | 256 | if self.build_toolchain and self.build_toolchain_headers: |
256 | targets.append("meta-toolchain-sdk") | 257 | targets.append("meta-toolchain-sdk") |
257 | elif self.build_toolchain: | 258 | elif self.build_toolchain: |
@@ -284,10 +285,6 @@ class HobHandler(gobject.GObject): | |||
284 | self.current_command = self.REPARSE_FILES | 285 | self.current_command = self.REPARSE_FILES |
285 | self.run_next_command() | 286 | self.run_next_command() |
286 | 287 | ||
287 | def build_packages(self, pkgs): | ||
288 | self.building = "packages" | ||
289 | self.server.runCommand(["buildTargets", pkgs, "build"]) | ||
290 | |||
291 | def cancel_build(self, force=False): | 288 | def cancel_build(self, force=False): |
292 | if force: | 289 | if force: |
293 | # Force the cooker to stop as quickly as possible | 290 | # Force the cooker to stop as quickly as possible |
diff --git a/bitbake/lib/bb/ui/hob.py b/bitbake/lib/bb/ui/hob.py index 51a995e491..0f738ce4b5 100644 --- a/bitbake/lib/bb/ui/hob.py +++ b/bitbake/lib/bb/ui/hob.py | |||
@@ -459,6 +459,9 @@ class MainWindow (gtk.Window): | |||
459 | image_name = recipepath.rstrip(".bb") | 459 | image_name = recipepath.rstrip(".bb") |
460 | path, sep, image_name = image_name.rpartition("/") | 460 | path, sep, image_name = image_name.rpartition("/") |
461 | 461 | ||
462 | image = [] | ||
463 | image.append(image_name) | ||
464 | |||
462 | rep.writeRecipe(recipepath, self.model) | 465 | rep.writeRecipe(recipepath, self.model) |
463 | # In the case where we saved the file for the purpose of building | 466 | # In the case where we saved the file for the purpose of building |
464 | # it we should then delete it so that the users workspace doesn't | 467 | # it we should then delete it so that the users workspace doesn't |
@@ -466,9 +469,9 @@ class MainWindow (gtk.Window): | |||
466 | if not self.save_path: | 469 | if not self.save_path: |
467 | self.files_to_clean.append(recipepath) | 470 | self.files_to_clean.append(recipepath) |
468 | 471 | ||
469 | self.handler.build_image(image_name, self.configurator) | 472 | self.handler.build_targets(image, self.configurator) |
470 | else: | 473 | else: |
471 | self.handler.build_packages(self.model.get_selected_pn()) | 474 | self.handler.build_targets(self.model.get_selected_pn(), self.configurator, "packages") |
472 | 475 | ||
473 | # Disable parts of the menu which shouldn't be used whilst building | 476 | # Disable parts of the menu which shouldn't be used whilst building |
474 | self.set_menus_sensitive(False) | 477 | self.set_menus_sensitive(False) |
@@ -490,7 +493,7 @@ class MainWindow (gtk.Window): | |||
490 | 493 | ||
491 | def build_complete_cb(self, running_build): | 494 | def build_complete_cb(self, running_build): |
492 | # Have the handler process BB events again | 495 | # Have the handler process BB events again |
493 | self.handler.building = None | 496 | self.handler.building = False |
494 | self.stopping = False | 497 | self.stopping = False |
495 | self.back.connect("clicked", self.back_button_clicked_cb) | 498 | self.back.connect("clicked", self.back_button_clicked_cb) |
496 | self.back.set_sensitive(True) | 499 | self.back.set_sensitive(True) |
@@ -504,7 +507,7 @@ class MainWindow (gtk.Window): | |||
504 | self.files_to_clean = [] | 507 | self.files_to_clean = [] |
505 | 508 | ||
506 | lbl = "<b>Build completed</b>\n\nClick 'Edit Image' to start another build or 'View Messages' to view the messages output during the build." | 509 | lbl = "<b>Build completed</b>\n\nClick 'Edit Image' to start another build or 'View Messages' to view the messages output during the build." |
507 | if self.handler.building == "image" and self.build_succeeded: | 510 | if self.handler.build_type == "image" and self.build_succeeded: |
508 | deploy = self.handler.get_image_deploy_dir() | 511 | deploy = self.handler.get_image_deploy_dir() |
509 | lbl = lbl + "\n<a href=\"file://%s\" title=\"%s\">Browse folder of built images</a>." % (deploy, deploy) | 512 | lbl = lbl + "\n<a href=\"file://%s\" title=\"%s\">Browse folder of built images</a>." % (deploy, deploy) |
510 | 513 | ||