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):