From 081990b2a3d27c83f17d79265d0c77271e9d6638 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Mon, 19 Sep 2011 15:25:45 -0700 Subject: 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 Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/hobeventhandler.py | 13 +++++-------- bitbake/lib/bb/ui/hob.py | 11 +++++++---- 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'bitbake') 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): gobject.GObject.__init__(self) self.current_command = None - self.building = None + self.building = False self.build_toolchain = False self.build_toolchain_headers = False self.generating = False @@ -128,10 +128,10 @@ class HobHandler(gobject.GObject): self.server.runCommand(["resetCooker"]) self.server.runCommand(["reparseFiles"]) elif self.current_command == self.BUILD_IMAGE: - self.building = "image" if self.generating: self.emit("data-generated") self.generating = False + self.building = True self.server.runCommand(["buildTargets", self.build_queue, "build"]) self.build_queue = [] self.current_command = None @@ -247,11 +247,12 @@ class HobHandler(gobject.GObject): pmake = "-j %s" % threads self.server.runCommand(["setVariable", "BB_NUMBER_THREADS", pmake]) - def build_image(self, image, configurator): + def build_targets(self, tgts, configurator, build_type="image"): + self.build_type = build_type targets = [] nbbp = None nbbf = None - targets.append(image) + targets.extend(tgts) if self.build_toolchain and self.build_toolchain_headers: targets.append("meta-toolchain-sdk") elif self.build_toolchain: @@ -284,10 +285,6 @@ class HobHandler(gobject.GObject): self.current_command = self.REPARSE_FILES self.run_next_command() - def build_packages(self, pkgs): - self.building = "packages" - self.server.runCommand(["buildTargets", pkgs, "build"]) - def cancel_build(self, force=False): if force: # 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): image_name = recipepath.rstrip(".bb") path, sep, image_name = image_name.rpartition("/") + image = [] + image.append(image_name) + rep.writeRecipe(recipepath, self.model) # In the case where we saved the file for the purpose of building # it we should then delete it so that the users workspace doesn't @@ -466,9 +469,9 @@ class MainWindow (gtk.Window): if not self.save_path: self.files_to_clean.append(recipepath) - self.handler.build_image(image_name, self.configurator) + self.handler.build_targets(image, self.configurator) else: - self.handler.build_packages(self.model.get_selected_pn()) + self.handler.build_targets(self.model.get_selected_pn(), self.configurator, "packages") # Disable parts of the menu which shouldn't be used whilst building self.set_menus_sensitive(False) @@ -490,7 +493,7 @@ class MainWindow (gtk.Window): def build_complete_cb(self, running_build): # Have the handler process BB events again - self.handler.building = None + self.handler.building = False self.stopping = False self.back.connect("clicked", self.back_button_clicked_cb) self.back.set_sensitive(True) @@ -504,7 +507,7 @@ class MainWindow (gtk.Window): self.files_to_clean = [] lbl = "Build completed\n\nClick 'Edit Image' to start another build or 'View Messages' to view the messages output during the build." - if self.handler.building == "image" and self.build_succeeded: + if self.handler.build_type == "image" and self.build_succeeded: deploy = self.handler.get_image_deploy_dir() lbl = lbl + "\nBrowse folder of built images." % (deploy, deploy) -- cgit v1.2.3-54-g00ecf