From 07dbea44c76640ca484fbaeb00821eaf1739388d Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Wed, 29 Jun 2011 19:37:37 +0100 Subject: bitbake: track 'overlayed' recipes Recipes that have been 'overlayed' (where there is a recipe in another layer where that layer has a higher priority) are now listed within cooker.overlayedlist for use in bitbake-layers. This is a dict with keys of the topmost (highest priority) recipe file. (Bitbake rev: 370fc603d79f9c34cc23b4b520b685256c23df5d) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- bitbake/lib/bb/cooker.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 6d59660794..cd32dd4ca4 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -33,6 +33,7 @@ import threading from cStringIO import StringIO from contextlib import closing from functools import wraps +from collections import defaultdict import bb, bb.exceptions from bb import utils, data, parse, event, cache, providers, taskdata, command, runqueue @@ -1060,6 +1061,18 @@ class BBCooker: self.appendlist[base] = [] self.appendlist[base].append(f) + # Find overlayed recipes + # bbfiles will be in priority order which makes this easy + bbfile_seen = dict() + self.overlayed = defaultdict(list) + for f in reversed(bbfiles): + base = os.path.basename(f) + if base not in bbfile_seen: + bbfile_seen[base] = f + else: + topfile = bbfile_seen[base] + self.overlayed[topfile].append(f) + return (bbfiles, masked) def get_file_appends(self, fn): -- cgit v1.2.3-54-g00ecf