summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/tinfoil.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/tinfoil.py')
-rw-r--r--bitbake/lib/bb/tinfoil.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py
index 0e937fba36..13b05cec2d 100644
--- a/bitbake/lib/bb/tinfoil.py
+++ b/bitbake/lib/bb/tinfoil.py
@@ -188,11 +188,19 @@ class TinfoilCookerAdapter:
188 self._cache[name] = attrvalue 188 self._cache[name] = attrvalue
189 return attrvalue 189 return attrvalue
190 190
191 class TinfoilSkiplistByMcAdapter:
192 def __init__(self, tinfoil):
193 self.tinfoil = tinfoil
194
195 def __getitem__(self, mc):
196 return self.tinfoil.get_skipped_recipes(mc)
197
191 def __init__(self, tinfoil): 198 def __init__(self, tinfoil):
192 self.tinfoil = tinfoil 199 self.tinfoil = tinfoil
193 self.multiconfigs = [''] + (tinfoil.config_data.getVar('BBMULTICONFIG') or '').split() 200 self.multiconfigs = [''] + (tinfoil.config_data.getVar('BBMULTICONFIG') or '').split()
194 self.collections = {} 201 self.collections = {}
195 self.recipecaches = {} 202 self.recipecaches = {}
203 self.skiplist_by_mc = self.TinfoilSkiplistByMcAdapter(tinfoil)
196 for mc in self.multiconfigs: 204 for mc in self.multiconfigs:
197 self.collections[mc] = self.TinfoilCookerCollectionAdapter(tinfoil, mc) 205 self.collections[mc] = self.TinfoilCookerCollectionAdapter(tinfoil, mc)
198 self.recipecaches[mc] = self.TinfoilRecipeCacheAdapter(tinfoil, mc) 206 self.recipecaches[mc] = self.TinfoilRecipeCacheAdapter(tinfoil, mc)
@@ -201,8 +209,6 @@ class TinfoilCookerAdapter:
201 # Grab these only when they are requested since they aren't always used 209 # Grab these only when they are requested since they aren't always used
202 if name in self._cache: 210 if name in self._cache:
203 return self._cache[name] 211 return self._cache[name]
204 elif name == 'skiplist':
205 attrvalue = self.tinfoil.get_skipped_recipes()
206 elif name == 'bbfile_config_priorities': 212 elif name == 'bbfile_config_priorities':
207 ret = self.tinfoil.run_command('getLayerPriorities') 213 ret = self.tinfoil.run_command('getLayerPriorities')
208 bbfile_config_priorities = [] 214 bbfile_config_priorities = []
@@ -514,12 +520,12 @@ class Tinfoil:
514 """ 520 """
515 return defaultdict(list, self.run_command('getOverlayedRecipes', mc)) 521 return defaultdict(list, self.run_command('getOverlayedRecipes', mc))
516 522
517 def get_skipped_recipes(self): 523 def get_skipped_recipes(self, mc=''):
518 """ 524 """
519 Find recipes which were skipped (i.e. SkipRecipe was raised 525 Find recipes which were skipped (i.e. SkipRecipe was raised
520 during parsing). 526 during parsing).
521 """ 527 """
522 return OrderedDict(self.run_command('getSkippedRecipes')) 528 return OrderedDict(self.run_command('getSkippedRecipes', mc))
523 529
524 def get_all_providers(self, mc=''): 530 def get_all_providers(self, mc=''):
525 return defaultdict(list, self.run_command('allProviders', mc)) 531 return defaultdict(list, self.run_command('allProviders', mc))
@@ -533,6 +539,7 @@ class Tinfoil:
533 def get_runtime_providers(self, rdep): 539 def get_runtime_providers(self, rdep):
534 return self.run_command('getRuntimeProviders', rdep) 540 return self.run_command('getRuntimeProviders', rdep)
535 541
542 # TODO: teach this method about mc
536 def get_recipe_file(self, pn): 543 def get_recipe_file(self, pn):
537 """ 544 """
538 Get the file name for the specified recipe/target. Raises 545 Get the file name for the specified recipe/target. Raises
@@ -541,6 +548,7 @@ class Tinfoil:
541 """ 548 """
542 best = self.find_best_provider(pn) 549 best = self.find_best_provider(pn)
543 if not best or (len(best) > 3 and not best[3]): 550 if not best or (len(best) > 3 and not best[3]):
551 # TODO: pass down mc
544 skiplist = self.get_skipped_recipes() 552 skiplist = self.get_skipped_recipes()
545 taskdata = bb.taskdata.TaskData(None, skiplist=skiplist) 553 taskdata = bb.taskdata.TaskData(None, skiplist=skiplist)
546 skipreasons = taskdata.get_reasons(pn) 554 skipreasons = taskdata.get_reasons(pn)