diff options
Diffstat (limited to 'bitbake/lib/bb/taskdata.py')
-rw-r--r-- | bitbake/lib/bb/taskdata.py | 65 |
1 files changed, 21 insertions, 44 deletions
diff --git a/bitbake/lib/bb/taskdata.py b/bitbake/lib/bb/taskdata.py index 3e5e006f5..e31f96785 100644 --- a/bitbake/lib/bb/taskdata.py +++ b/bitbake/lib/bb/taskdata.py @@ -34,7 +34,7 @@ def re_match_strings(target, strings): for name in strings: if (name==target or - re.search(name,target)!=None): + re.search(name, target)!=None): return True return False @@ -84,7 +84,7 @@ class TaskData: def getrun_id(self, name): """ - Return an ID number for the run target name. + Return an ID number for the run target name. If it doesn't exist, create one. """ if not name in self.run_names_index: @@ -95,7 +95,7 @@ class TaskData: def getfn_id(self, name): """ - Return an ID number for the filename. + Return an ID number for the filename. If it doesn't exist, create one. """ if not name in self.fn_index: @@ -271,7 +271,7 @@ class TaskData: def get_unresolved_build_targets(self, dataCache): """ - Return a list of build targets who's providers + Return a list of build targets who's providers are unknown. """ unresolved = [] @@ -286,7 +286,7 @@ class TaskData: def get_unresolved_run_targets(self, dataCache): """ - Return a list of runtime targets who's providers + Return a list of runtime targets who's providers are unknown. """ unresolved = [] @@ -304,7 +304,7 @@ class TaskData: Return a list of providers of item """ targetid = self.getbuild_id(item) - + return self.build_targets[targetid] def get_dependees(self, itemid): @@ -354,20 +354,15 @@ class TaskData: self.add_provider_internal(cfgData, dataCache, item) except bb.providers.NoProvider: if self.abort: - if self.get_rdependees_str(item): - bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (item, self.get_dependees_str(item))) - else: - bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item)) raise - targetid = self.getbuild_id(item) - self.remove_buildtarget(targetid) + self.remove_buildtarget(self.getbuild_id(item)) self.mark_external_target(item) def add_provider_internal(self, cfgData, dataCache, item): """ Add the providers of item to the task data - Mark entries were specifically added externally as against dependencies + Mark entries were specifically added externally as against dependencies added internally during dependency resolution """ @@ -375,11 +370,7 @@ class TaskData: return if not item in dataCache.providers: - if self.get_rdependees_str(item): - bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (item, self.get_dependees_str(item))) - else: - bb.msg.note(2, bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (item)) - bb.event.fire(bb.event.NoProvider(item), cfgData) + bb.event.fire(bb.event.NoProvider(item, dependees=self.get_rdependees_str(item)), cfgData) raise bb.providers.NoProvider(item) if self.have_build_target(item): @@ -391,8 +382,7 @@ class TaskData: eligible = [p for p in eligible if not self.getfn_id(p) in self.failed_fnids] if not eligible: - bb.msg.note(2, bb.msg.domain.Provider, "No buildable provider PROVIDES '%s' but '%s' DEPENDS on or otherwise requires it. Enable debugging and see earlier logs to find unbuildable providers." % (item, self.get_dependees_str(item))) - bb.event.fire(bb.event.NoProvider(item), cfgData) + bb.event.fire(bb.event.NoProvider(item, dependees=self.get_dependees_str(item)), cfgData) raise bb.providers.NoProvider(item) if len(eligible) > 1 and foundUnique == False: @@ -400,8 +390,6 @@ class TaskData: providers_list = [] for fn in eligible: providers_list.append(dataCache.pkg_fn[fn]) - bb.msg.note(1, bb.msg.domain.Provider, "multiple providers are available for %s (%s);" % (item, ", ".join(providers_list))) - bb.msg.note(1, bb.msg.domain.Provider, "consider defining PREFERRED_PROVIDER_%s" % item) bb.event.fire(bb.event.MultipleProviders(item, providers_list), cfgData) self.consider_msgs_cache.append(item) @@ -431,16 +419,14 @@ class TaskData: all_p = bb.providers.getRuntimeProviders(dataCache, item) if not all_p: - bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables" % (self.get_rdependees_str(item), item)) - bb.event.fire(bb.event.NoProvider(item, runtime=True), cfgData) + bb.event.fire(bb.event.NoProvider(item, runtime=True, dependees=self.get_rdependees_str(item)), cfgData) raise bb.providers.NoRProvider(item) eligible, numberPreferred = bb.providers.filterProvidersRunTime(all_p, item, cfgData, dataCache) eligible = [p for p in eligible if not self.getfn_id(p) in self.failed_fnids] if not eligible: - bb.msg.error(bb.msg.domain.Provider, "'%s' RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity '%s' but it wasn't found in any PACKAGE or RPROVIDES variables of any buildable targets.\nEnable debugging and see earlier logs to find unbuildable targets." % (self.get_rdependees_str(item), item)) - bb.event.fire(bb.event.NoProvider(item, runtime=True), cfgData) + bb.event.fire(bb.event.NoProvider(item, runtime=True, dependees=self.get_rdependees_str(item)), cfgData) raise bb.providers.NoRProvider(item) if len(eligible) > 1 and numberPreferred == 0: @@ -448,9 +434,7 @@ class TaskData: providers_list = [] for fn in eligible: providers_list.append(dataCache.pkg_fn[fn]) - bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (%s);" % (item, ", ".join(providers_list))) - bb.msg.note(2, bb.msg.domain.Provider, "consider defining a PREFERRED_PROVIDER entry to match runtime %s" % item) - bb.event.fire(bb.event.MultipleProviders(item,providers_list, runtime=True), cfgData) + bb.event.fire(bb.event.MultipleProviders(item, providers_list, runtime=True), cfgData) self.consider_msgs_cache.append(item) if numberPreferred > 1: @@ -458,9 +442,7 @@ class TaskData: providers_list = [] for fn in eligible: providers_list.append(dataCache.pkg_fn[fn]) - bb.msg.note(2, bb.msg.domain.Provider, "multiple providers are available for runtime %s (top %s entries preferred) (%s);" % (item, numberPreferred, ", ".join(providers_list))) - bb.msg.note(2, bb.msg.domain.Provider, "consider defining only one PREFERRED_PROVIDER entry to match runtime %s" % item) - bb.event.fire(bb.event.MultipleProviders(item,providers_list, runtime=True), cfgData) + bb.event.fire(bb.event.MultipleProviders(item, providers_list, runtime=True), cfgData) self.consider_msgs_cache.append(item) # run through the list until we find one that we can build @@ -515,8 +497,9 @@ class TaskData: 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 + target = self.build_names_index[targetid] + bb.msg.error(bb.msg.domain.Provider, "Required build target '%s' has no buildable providers.\nMissing or unbuildable dependency chain was: %s" % (target, missing_list)) + raise bb.providers.NoProvider(target) def remove_runtarget(self, targetid, missing_list = []): """ @@ -539,7 +522,7 @@ class TaskData: Resolve all unresolved build and runtime targets """ bb.msg.note(1, bb.msg.domain.TaskData, "Resolving any missing task queue dependencies") - while 1: + while True: added = 0 for target in self.get_unresolved_build_targets(dataCache): try: @@ -548,10 +531,6 @@ class TaskData: except bb.providers.NoProvider: targetid = self.getbuild_id(target) if self.abort and targetid in self.external_targets: - if self.get_rdependees_str(target): - bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s' (but '%s' DEPENDS on or otherwise requires it)" % (target, self.get_dependees_str(target))) - else: - bb.msg.error(bb.msg.domain.Provider, "Nothing PROVIDES '%s'" % (target)) raise self.remove_buildtarget(targetid) for target in self.get_unresolved_run_targets(dataCache): @@ -594,9 +573,9 @@ class TaskData: bb.msg.debug(3, bb.msg.domain.TaskData, "tasks:") for task in range(len(self.tasks_name)): bb.msg.debug(3, bb.msg.domain.TaskData, " (%s)%s - %s: %s" % ( - task, - self.fn_index[self.tasks_fnid[task]], - self.tasks_name[task], + task, + self.fn_index[self.tasks_fnid[task]], + self.tasks_name[task], self.tasks_tdepends[task])) bb.msg.debug(3, bb.msg.domain.TaskData, "dependency ids (per fn):") @@ -606,5 +585,3 @@ class TaskData: bb.msg.debug(3, bb.msg.domain.TaskData, "runtime dependency ids (per fn):") for fnid in self.rdepids: bb.msg.debug(3, bb.msg.domain.TaskData, " %s %s: %s" % (fnid, self.fn_index[fnid], self.rdepids[fnid])) - - |