diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2008-03-15 12:41:09 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2008-03-15 12:41:09 +0000 |
commit | be5a87bcaa11221d3843b284cedde44805f107b1 (patch) | |
tree | 8146570dc99696e2e991306366fef5727f1d51ac /lib/bb/cooker.py | |
parent | cc88a6c51e26525aed8a0685fc98b197a1c62691 (diff) | |
download | bitbake-be5a87bcaa11221d3843b284cedde44805f107b1.tar.gz |
cooker.py: Turn buildFile into a fully blown offline command with idle function fixing -b issues
Diffstat (limited to 'lib/bb/cooker.py')
-rw-r--r-- | lib/bb/cooker.py | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index c4dabf004..e0cfe4344 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -652,17 +652,31 @@ class BBCooker: # Execute the runqueue runlist = [[item, "do_%s" % self.configuration.cmd]] + rq = bb.runqueue.RunQueue(self, self.configuration.data, self.status, taskdata, runlist) - rq.prepare_runqueue() - try: - failures = rq.execute_runqueue() - except runqueue.TaskFailure, fnids: - for fnid in fnids: - bb.msg.error(bb.msg.domain.Build, "'%s' failed" % taskdata.fn_index[fnid]) - return False - bb.event.fire(bb.event.BuildCompleted(buildname, [item], self.configuration.event_data, failures)) - bb.event.fire(bb.command.CookerCommandCompleted(self.configuration.event_data)) + def buildFileIdle(server, rq, abort): + + if abort or self.cookerAction == cookerStop: + rq.finish_runqueue(True) + elif self.cookerAction == cookerShutdown: + rq.finish_runqueue(False) + failures = 0 + try: + retval = rq.execute_runqueue() + except runqueue.TaskFailure, fnids: + for fnid in fnids: + bb.msg.error(bb.msg.domain.Build, "'%s' failed" % taskdata.fn_index[fnid]) + failures = failures + 1 + retval = False + if not retval: + self.cookerIdle = True + self.command.finishOfflineCommand() + bb.event.fire(bb.event.BuildCompleted(buildname, targets, self.configuration.event_data, failures)) + return retval + + self.cookerIdle = False + self.server.register_idle_function(buildFileIdle, rq) def buildTargets(self, targets): """ @@ -689,9 +703,9 @@ class BBCooker: failures = failures + 1 retval = False if not retval: - bb.event.fire(bb.event.BuildCompleted(buildname, targets, self.configuration.event_data, failures)) self.cookerIdle = True self.command.finishOfflineCommand() + bb.event.fire(bb.event.BuildCompleted(buildname, targets, self.configuration.event_data, failures)) return retval self.buildSetVars() |