bitbake: Add tryaltconfigs option to disable the alternative configuration attempts and make the 'continue' more aggresive

This commit is contained in:
Richard Purdie 2008-10-28 22:15:06 +00:00
parent db140d9ce0
commit b296ae263c
8 changed files with 21 additions and 8 deletions

View File

@ -69,6 +69,9 @@ Default BBFILES are the .bb files in the current directory.""" )
parser.add_option( "-k", "--continue", help = "continue as much as possible after an error. While the target that failed, and those that depend on it, cannot be remade, the other dependencies of these targets can be processed all the same.",
action = "store_false", dest = "abort", default = True )
parser.add_option( "-a", "--tryaltconfigs", help = "continue with builds by trying to use alternative providers where possible.",
action = "store_true", dest = "tryaltconfigs", default = False )
parser.add_option( "-f", "--force", help = "force run of specified cmd, regardless of stamp status",
action = "store_true", dest = "force", default = False )

View File

@ -869,7 +869,7 @@ class RunQueue:
self.finish_runqueue()
if self.state is runQueueFailed:
if self.taskData.abort:
if not self.taskData.tryaltconfigs:
raise bb.runqueue.TaskFailure(self.failed_fnids)
for fnid in self.failed_fnids:
self.taskData.fail_fnid(fnid)

View File

@ -30,7 +30,7 @@ class TaskData:
"""
BitBake Task Data implementation
"""
def __init__(self, abort = True):
def __init__(self, abort = True, tryaltconfigs = False):
self.build_names_index = []
self.run_names_index = []
self.fn_index = []
@ -57,6 +57,7 @@ class TaskData:
self.failed_fnids = []
self.abort = abort
self.tryaltconfigs = tryaltconfigs
def getbuild_id(self, name):
"""

View File

@ -60,6 +60,9 @@ Default BBFILES are the .bb files in the current directory.""" )
parser.add_option( "-k", "--continue", help = "continue as much as possible after an error. While the target that failed, and those that depend on it, cannot be remade, the other dependencies of these targets can be processed all the same.",
action = "store_false", dest = "abort", default = True )
parser.add_option( "-a", "--tryaltconfigs", help = "continue with builds by trying to use alternative providers where possible.",
action = "store_true", dest = "tryaltconfigs", default = False )
parser.add_option( "-f", "--force", help = "force run of specified cmd, regardless of stamp status",
action = "store_true", dest = "force", default = False )

View File

@ -54,6 +54,9 @@ continue as much as possible after an error. While the target that failed, and
those that depend on it, cannot be remade, the other dependencies of these
targets can be processed all the same.
.TP
.B \-a, \-\-tryaltconfigs
continue with builds by trying to use alternative providers where possible.
.TP
.B \-f, \-\-force
force run of specified cmd, regardless of stamp status
.TP

View File

@ -194,7 +194,7 @@ class BBCooker:
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
taskdata = bb.taskdata.TaskData(self.configuration.abort)
taskdata = bb.taskdata.TaskData(self.configuration.abort, self.configuration.tryaltconfigs)
try:
taskdata.add_provider(localdata, self.status, pkgs_to_build[0])
@ -243,7 +243,7 @@ class BBCooker:
localdata = data.createCopy(self.configuration.data)
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
taskdata = bb.taskdata.TaskData(self.configuration.abort)
taskdata = bb.taskdata.TaskData(self.configuration.abort, self.configuration.tryaltconfigs)
runlist = []
try:
@ -500,7 +500,7 @@ class BBCooker:
bb.build.del_stamp('do_%s' % self.configuration.cmd, self.configuration.data)
# Setup taskdata structure
taskdata = bb.taskdata.TaskData(self.configuration.abort)
taskdata = bb.taskdata.TaskData(self.configuration.abort, self.configuration.tryaltconfigs)
taskdata.add_provider(self.configuration.data, self.status, item)
buildname = bb.data.getVar("BUILDNAME", self.configuration.data)
@ -534,7 +534,7 @@ class BBCooker:
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
taskdata = bb.taskdata.TaskData(self.configuration.abort)
taskdata = bb.taskdata.TaskData(self.configuration.abort, self.configuration.tryaltconfigs)
runlist = []
try:

View File

@ -845,7 +845,7 @@ class RunQueue:
failed_fnids = self.finish_runqueue()
if len(failed_fnids) == 0:
return failures
if self.taskData.abort:
if not self.taskData.tryaltconfigs:
raise bb.runqueue.TaskFailure(failed_fnids)
for fnid in failed_fnids:
#print "Failure: %s %s %s" % (fnid, self.taskData.fn_index[fnid], self.runq_task[fnid])
@ -970,6 +970,8 @@ class RunQueue:
bb.msg.error(bb.msg.domain.RunQueue, "Task %s (%s) failed" % (task, self.get_user_idstring(task)))
self.failed_fnids.append(self.runq_fnid[task])
self.stats.taskFailed()
if not self.taskData.abort:
continue
break
self.task_complete(task)
self.stats.taskCompleted()

View File

@ -30,7 +30,7 @@ class TaskData:
"""
BitBake Task Data implementation
"""
def __init__(self, abort = True):
def __init__(self, abort = True, tryaltconfigs = False):
self.build_names_index = []
self.run_names_index = []
self.fn_index = []
@ -57,6 +57,7 @@ class TaskData:
self.failed_fnids = []
self.abort = abort
self.tryaltconfigs = tryaltconfigs
def getbuild_id(self, name):
"""