bitbake: cache: If one virtual of a recipe is uncached, remove all versions from the cache

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Richard Purdie 2010-07-25 11:33:11 +01:00
parent 36cfff8ed5
commit 7edde59de4
1 changed files with 14 additions and 0 deletions

View File

@ -285,11 +285,25 @@ class Cache:
if not fn in self.clean:
self.clean[fn] = ""
invalid = False
# Mark extended class data as clean too
multi = self.getVar('__VARIANTS', fn, True)
for cls in (multi or "").split():
virtualfn = self.realfn2virtual(fn, cls)
self.clean[virtualfn] = ""
if not virtualfn in self.depends_cache:
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: %s is not cached" % virtualfn)
invalid = True
# If any one of the varients is not present, mark cache as invalid for all
if invalid:
for cls in (multi or "").split():
virtualfn = self.realfn2virtual(fn, cls)
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: Removing %s from cache" % virtualfn)
del self.clean[virtualfn]
bb.msg.debug(2, bb.msg.domain.Cache, "Cache: Removing %s from cache" % fn)
del self.clean[fn]
return False
return True