diff options
-rw-r--r-- | bitbake/lib/bb/ui/crumbs/tasklistmodel.py | 14 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/hob.py | 23 |
2 files changed, 30 insertions, 7 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/tasklistmodel.py b/bitbake/lib/bb/ui/crumbs/tasklistmodel.py index f4dffc6..36a5673 100644 --- a/bitbake/lib/bb/ui/crumbs/tasklistmodel.py +++ b/bitbake/lib/bb/ui/crumbs/tasklistmodel.py @@ -60,9 +60,19 @@ require %s IMAGE_INSTALL += "%s" """ - meta_path = model.find_image_path(self.base_image) - recipe = template % (meta_path, self.userpkgs) + empty_template = """ +# Recipe generated by the HOB + +inherit core-image + +IMAGE_INSTALL = "%s" +""" + if self.base_image and not self.base_image == "empty": + meta_path = model.find_image_path(self.base_image) + recipe = template % (meta_path, self.userpkgs) + else: + recipe = empty_template % self.allpkgs if os.path.exists(writepath): os.rename(writepath, "%s~" % writepath) diff --git a/bitbake/lib/bb/ui/hob.py b/bitbake/lib/bb/ui/hob.py index 865933c..d3442c5 100644 --- a/bitbake/lib/bb/ui/hob.py +++ b/bitbake/lib/bb/ui/hob.py @@ -369,20 +369,31 @@ class MainWindow (gtk.Window): self.dirty = False def bake_clicked_cb(self, button): + build_image = True + rep = self.model.get_build_rep() if not rep.base_image: - lbl = "<b>Build only packages?</b>\n\nAn image has not been selected, so only the selected packages will be built." + lbl = "<b>Build empty image or only packages?</b>\nA base image" + lbl = lbl + " has not been selected.\n\'Empty image' will build" + lbl = lbl + " an image with only the selected packages as its" + lbl = lbl + " contents.\n'Packages Only' will build only the" + lbl = lbl + " selected packages, no image will be created" dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_WARNING) dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) - dialog.add_button("Build", gtk.RESPONSE_YES) + dialog.add_button("Empty Image", gtk.RESPONSE_OK) + dialog.add_button("Packages Only", gtk.RESPONSE_YES) response = dialog.run() dialog.destroy() if response == gtk.RESPONSE_CANCEL: return - else: - self.handler.build_packages(rep.allpkgs.split(" ")) - else: + elif response == gtk.RESPONSE_YES: + build_image = False + elif response == gtk.RESPONSE_OK: + rep.base_image = "empty" + + if build_image: import tempfile, datetime + image_name = "hob-%s-variant-%s" % (rep.base_image, datetime.date.today().isoformat()) image_file = "%s.bb" % (image_name) image_dir = os.path.join(tempfile.gettempdir(), 'hob-images') @@ -397,6 +408,8 @@ class MainWindow (gtk.Window): self.files_to_clean.append(recipepath) self.handler.build_image(image_name, image_dir, self.configurator) + else: + self.handler.build_packages(rep.allpkgs.split(" ")) self.nb.set_current_page(1) |