diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2007-08-17 14:46:56 +0000 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2007-08-17 14:46:56 +0000 |
commit | 4439b3110b952d49c9486bb14168556390adfb8f (patch) | |
tree | 0ea026f7ccc05dba0087a41da65310160e341417 | |
parent | 8405eb1631300cdf32b8c6c385b1b2a1d1a1946b (diff) | |
download | bitbake-4439b3110b952d49c9486bb14168556390adfb8f.tar.gz |
Print the list of missing DEPENDS/RDEPENDS on the "No buildable providers available for required build target..." error message
I'm not certain to get all occurences of fail_fnid but the printed message is a usability improvement. So this change might be not complete but good enough to be applied.
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | lib/bb/taskdata.py | 20 |
2 files changed, 13 insertions, 9 deletions
@@ -44,6 +44,8 @@ Changes in Bitbake 1.9.x: - Add locking for fetchers so only one tries to fetch a given file at a given time - Fix int(0)/None confusion in runqueue.py which causes random gaps in dependency chains - Expand data in addtasks + - Print the list of missing DEPENDS,RDEPENDS for the "No buildable providers available for required...." + error message. Changes in Bitbake 1.8.0: - Release 1.7.x as a stable series diff --git a/lib/bb/taskdata.py b/lib/bb/taskdata.py index f448b5b66..2fa5ff99f 100644 --- a/lib/bb/taskdata.py +++ b/lib/bb/taskdata.py @@ -450,10 +450,12 @@ class TaskData: self.add_runtime_target(fn, item) self.add_tasks(fn, dataCache) - def fail_fnid(self, fnid): + def fail_fnid(self, fnid, missing_list = []): """ Mark a file as failed (unbuildable) Remove any references from build and runtime provider lists + + missing_list, A list of missing requirements for this target """ if fnid in self.failed_fnids: return @@ -463,14 +465,14 @@ class TaskData: if fnid in self.build_targets[target]: self.build_targets[target].remove(fnid) if len(self.build_targets[target]) == 0: - self.remove_buildtarget(target) + self.remove_buildtarget(target, missing_list) for target in self.run_targets: if fnid in self.run_targets[target]: self.run_targets[target].remove(fnid) if len(self.run_targets[target]) == 0: - self.remove_runtarget(target) + self.remove_runtarget(target, missing_list) - def remove_buildtarget(self, targetid): + def remove_buildtarget(self, targetid, missing_list = []): """ Mark a build target as failed (unbuildable) Trigger removal of any files that have this as a dependency @@ -479,21 +481,21 @@ class TaskData: self.failed_deps.append(targetid) dependees = self.get_dependees(targetid) for fnid in dependees: - self.fail_fnid(fnid) + self.fail_fnid(fnid, [self.build_names_index[targetid]]+missing_list) if self.abort and targetid in self.external_targets: - bb.msg.error(bb.msg.domain.Provider, "No buildable providers available for required build target %s" % self.build_names_index[targetid]) + bb.msg.error(bb.msg.domain.Provider, "No buildable providers available for required build target %s ('%s')" % (self.build_names_index[targetid], missing_list)) raise bb.providers.NoProvider - def remove_runtarget(self, targetid): + def remove_runtarget(self, targetid, missing_list = []): """ Mark a run target as failed (unbuildable) Trigger removal of any files that have this as a dependency """ - bb.msg.note(1, bb.msg.domain.Provider, "Removing failed runtime build target %s" % self.run_names_index[targetid]) + bb.msg.note(1, bb.msg.domain.Provider, "Removing failed runtime build target %s ('%s')" % (self.run_names_index[targetid], missing_list)) self.failed_rdeps.append(targetid) dependees = self.get_rdependees(targetid) for fnid in dependees: - self.fail_fnid(fnid) + self.fail_fnid(fnid, [self.run_names_index[targetid]]+missing_list) def add_unresolved(self, cfgData, dataCache): """ |