diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2008-03-06 10:35:04 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2008-03-06 10:35:04 +0000 |
commit | 0dc5e80d24b1ebc01b9ad279e7d4287a48650b4a (patch) | |
tree | 33a7d6d2c551b8a9e2f42a369265fde171468a58 /lib/bb/taskdata.py | |
parent | b90175e1b53cffd4bb02a71a63453af3f14d4065 (diff) | |
download | bitbake-0dc5e80d24b1ebc01b9ad279e7d4287a48650b4a.tar.gz |
taskdata.py: When handling build target failures make sure idepends are checked and failed where needed. Fixes --continue mode crashes.
Diffstat (limited to 'lib/bb/taskdata.py')
-rw-r--r-- | lib/bb/taskdata.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/bb/taskdata.py b/lib/bb/taskdata.py index 4a79e7a56..a50188b41 100644 --- a/lib/bb/taskdata.py +++ b/lib/bb/taskdata.py @@ -150,7 +150,7 @@ class TaskData: ids = [] for dep in task_deps['depends'][task].split(): if dep: - ids.append(str(self.getbuild_id(dep.split(":")[0])) + ":" + dep.split(":")[1]) + ids.append(((self.getbuild_id(dep.split(":")[0])), dep.split(":")[1])) self.tasks_idepends[taskid].extend(ids) # Work out build dependencies @@ -458,8 +458,6 @@ class TaskData: """ if fnid in self.failed_fnids: return - if not missing_list: - missing_list = [fnid] bb.msg.debug(1, bb.msg.domain.Provider, "File '%s' is unbuildable, removing..." % self.fn_index[fnid]) self.failed_fnids.append(fnid) for target in self.build_targets: @@ -487,6 +485,12 @@ class TaskData: dependees = self.get_dependees(targetid) for fnid in dependees: self.fail_fnid(fnid, missing_list) + for taskid in range(len(self.tasks_idepends)): + idepends = self.tasks_idepends[taskid] + for (idependid, idependtask) in idepends: + if idependid == targetid: + self.fail_fnid(self.tasks_fnid[taskid], missing_list) + if self.abort and targetid in self.external_targets: bb.msg.error(bb.msg.domain.Provider, "Required build target '%s' has no buildable providers.\nMissing or unbuildable dependency chain was: %s" % (self.build_names_index[targetid], missing_list)) raise bb.providers.NoProvider |