summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2007-08-17 14:46:56 +0000
committerHolger Hans Peter Freyther <zecke@selfish.org>2007-08-17 14:46:56 +0000
commitd7dd7c50313d95fca02674c2d74c93d70b4db7ed (patch)
treed71e0da71f238da1eb5eae071771113160567dad
parent790e2cd8138e8fb821eae72c1182c3fe4bd3b273 (diff)
downloadbitbake-d7dd7c50313d95fca02674c2d74c93d70b4db7ed.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--ChangeLog2
-rw-r--r--lib/bb/taskdata.py20
2 files changed, 13 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index a776c7794..165d947ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,6 +26,8 @@ Changes in Bitbake 1.8.x:
- Fix handling of variables with expansion in the name using _append/_prepend
e.g. RRECOMMENDS_${PN}_append_xyz = "abc"
- 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.6:
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):
"""