diff options
Diffstat (limited to 'bitbake/lib')
| -rw-r--r-- | bitbake/lib/bb/ui/crumbs/hobeventhandler.py | 60 | ||||
| -rw-r--r-- | bitbake/lib/bb/ui/hob.py | 2 |
2 files changed, 35 insertions, 27 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py index 2f45350c32..78a50901d5 100644 --- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py +++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py | |||
| @@ -61,8 +61,11 @@ class HobHandler(gobject.GObject): | |||
| 61 | gobject.TYPE_STRING)), | 61 | gobject.TYPE_STRING)), |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | (CFG_PATH_LOCAL, CFG_PATH_HOB, CFG_PATH_LAYERS, CFG_FILES_DISTRO, CFG_FILES_MACH, CFG_FILES_SDK, FILES_MATCH_CLASS, GENERATE_TGTS) = range(8) | ||
| 65 | |||
| 64 | def __init__(self, taskmodel, server): | 66 | def __init__(self, taskmodel, server): |
| 65 | gobject.GObject.__init__(self) | 67 | gobject.GObject.__init__(self) |
| 68 | |||
| 66 | self.current_command = None | 69 | self.current_command = None |
| 67 | self.building = None | 70 | self.building = None |
| 68 | self.gplv3_excluded = False | 71 | self.gplv3_excluded = False |
| @@ -76,30 +79,37 @@ class HobHandler(gobject.GObject): | |||
| 76 | 79 | ||
| 77 | self.image_output_types = self.server.runCommand(["getVariable", "IMAGE_FSTYPES"]).split(" ") | 80 | self.image_output_types = self.server.runCommand(["getVariable", "IMAGE_FSTYPES"]).split(" ") |
| 78 | 81 | ||
| 79 | self.command_map = { | ||
| 80 | "findConfigFilePathLocal" : ("findConfigFilePath", ["hob.local.conf"], "findConfigFilePathHobLocal"), | ||
| 81 | "findConfigFilePathHobLocal" : ("findConfigFilePath", ["bblayers.conf"], "findConfigFilePathLayers"), | ||
| 82 | "findConfigFilePathLayers" : ("findConfigFiles", ["DISTRO"], "findConfigFilesDistro"), | ||
| 83 | "findConfigFilesDistro" : ("findConfigFiles", ["MACHINE"], "findConfigFilesMachine"), | ||
| 84 | "findConfigFilesMachine" : ("findConfigFiles", ["MACHINE-SDK"], "findConfigFilesSdkMachine"), | ||
| 85 | "findConfigFilesSdkMachine" : ("findFilesMatchingInDir", ["rootfs_", "classes"], "findFilesMatchingPackage"), | ||
| 86 | "findFilesMatchingPackage" : ("generateTargetsTree", ["classes/image.bbclass"], None), | ||
| 87 | "generateTargetsTree" : (None, [], None), | ||
| 88 | } | ||
| 89 | |||
| 90 | def run_next_command(self): | 82 | def run_next_command(self): |
| 91 | # FIXME: this is ugly and I *will* replace it | 83 | if self.current_command and not self.generating: |
| 92 | if self.current_command: | 84 | self.emit("generating-data") |
| 93 | if not self.generating: | 85 | self.generating = True |
| 94 | self.emit("generating-data") | 86 | |
| 95 | self.generating = True | 87 | if self.current_command == self.CFG_PATH_LOCAL: |
| 96 | next_cmd = self.command_map[self.current_command] | 88 | self.current_command = self.CFG_PATH_HOB |
| 97 | command = next_cmd[0] | 89 | self.server.runCommand(["findConfigFilePath", "hob.local.conf"]) |
| 98 | argument = next_cmd[1] | 90 | elif self.current_command == self.CFG_PATH_HOB: |
| 99 | self.current_command = next_cmd[2] | 91 | self.current_command = self.CFG_PATH_LAYERS |
| 100 | args = [command] | 92 | self.server.runCommand(["findConfigFilePath", "bblayers.conf"]) |
| 101 | args.extend(argument) | 93 | elif self.current_command == self.CFG_PATH_LAYERS: |
| 102 | self.server.runCommand(args) | 94 | self.current_command = self.CFG_FILES_DISTRO |
| 95 | self.server.runCommand(["findConfigFiles", "DISTRO"]) | ||
| 96 | elif self.current_command == self.CFG_FILES_DISTRO: | ||
| 97 | self.current_command = self.CFG_FILES_MACH | ||
| 98 | self.server.runCommand(["findConfigFiles", "MACHINE"]) | ||
| 99 | elif self.current_command == self.CFG_FILES_MACH: | ||
| 100 | self.current_command = self.CFG_FILES_SDK | ||
| 101 | self.server.runCommand(["findConfigFiles", "MACHINE-SDK"]) | ||
| 102 | elif self.current_command == self.CFG_FILES_SDK: | ||
| 103 | self.current_command = self.FILES_MATCH_CLASS | ||
| 104 | self.server.runCommand(["findFilesMatchingInDir", "rootfs_", "classes"]) | ||
| 105 | elif self.current_command == self.FILES_MATCH_CLASS: | ||
| 106 | self.current_command = self.GENERATE_TGTS | ||
| 107 | self.server.runCommand(["generateTargetsTree", "classes/image.bbclass"]) | ||
| 108 | elif self.current_command == self.GENERATE_TGTS: | ||
| 109 | if self.generating: | ||
| 110 | self.emit("data-generated") | ||
| 111 | self.generating = False | ||
| 112 | self.current_command = None | ||
| 103 | 113 | ||
| 104 | def handle_event(self, event, running_build, pbar): | 114 | def handle_event(self, event, running_build, pbar): |
| 105 | if not event: | 115 | if not event: |
| @@ -109,8 +119,6 @@ class HobHandler(gobject.GObject): | |||
| 109 | if self.building: | 119 | if self.building: |
| 110 | running_build.handle_event(event) | 120 | running_build.handle_event(event) |
| 111 | elif isinstance(event, bb.event.TargetsTreeGenerated): | 121 | elif isinstance(event, bb.event.TargetsTreeGenerated): |
| 112 | self.emit("data-generated") | ||
| 113 | self.generating = False | ||
| 114 | if event._model: | 122 | if event._model: |
| 115 | self.model.populate(event._model) | 123 | self.model.populate(event._model) |
| 116 | elif isinstance(event, bb.event.ConfigFilesFound): | 124 | elif isinstance(event, bb.event.ConfigFilesFound): |
| @@ -188,7 +196,7 @@ class HobHandler(gobject.GObject): | |||
| 188 | selected_packages, _ = self.model.get_selected_packages() | 196 | selected_packages, _ = self.model.get_selected_packages() |
| 189 | self.emit("reload-triggered", img, " ".join(selected_packages)) | 197 | self.emit("reload-triggered", img, " ".join(selected_packages)) |
| 190 | self.server.runCommand(["reparseFiles"]) | 198 | self.server.runCommand(["reparseFiles"]) |
| 191 | self.current_command = "findConfigFilePathLayers" | 199 | self.current_command = self.CFG_PATH_LAYERS |
| 192 | self.run_next_command() | 200 | self.run_next_command() |
| 193 | 201 | ||
| 194 | def set_bbthreads(self, threads): | 202 | def set_bbthreads(self, threads): |
diff --git a/bitbake/lib/bb/ui/hob.py b/bitbake/lib/bb/ui/hob.py index 09a63c6717..448d590e49 100644 --- a/bitbake/lib/bb/ui/hob.py +++ b/bitbake/lib/bb/ui/hob.py | |||
| @@ -929,7 +929,7 @@ def main (server, eventHandler): | |||
| 929 | 929 | ||
| 930 | try: | 930 | try: |
| 931 | # kick the while thing off | 931 | # kick the while thing off |
| 932 | handler.current_command = "findConfigFilePathLocal" | 932 | handler.current_command = handler.CFG_PATH_LOCAL |
| 933 | server.runCommand(["findConfigFilePath", "local.conf"]) | 933 | server.runCommand(["findConfigFilePath", "local.conf"]) |
| 934 | except xmlrpclib.Fault: | 934 | except xmlrpclib.Fault: |
| 935 | print("XMLRPC Fault getting commandline:\n %s" % x) | 935 | print("XMLRPC Fault getting commandline:\n %s" % x) |
