From 001a555c2f755d4f8a69b113656d9307ca7ee597 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 10 Apr 2011 10:55:48 -0700 Subject: bitbake/cache.py: Ensure skipped recipes make it into the cache to avoid reparsing Signed-off-by: Richard Purdie --- bitbake/lib/bb/cache.py | 11 ++++++++--- bitbake/lib/bb/cooker.py | 3 +-- bitbake/lib/bb/ui/knotty.py | 5 +++++ 3 files changed, 14 insertions(+), 5 deletions(-) (limited to 'bitbake/lib') diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py index 955b400..d083c51 100644 --- a/bitbake/lib/bb/cache.py +++ b/bitbake/lib/bb/cache.py @@ -129,7 +129,10 @@ class RecipeInfo(namedtuple('RecipeInfo', recipe_fields)): @classmethod def from_metadata(cls, filename, metadata): if cls.getvar('__SKIPPED', metadata): - return cls.make_optional(skipped=True) + return cls.make_optional(skipped=True, + file_depends=metadata.getVar('__depends', False), + timestamp=bb.parse.cached_mtime(filename), + variants=cls.listvar('__VARIANTS', metadata) + ['']) tasks = metadata.getVar('__BBTASKS', False) @@ -480,11 +483,13 @@ class Cache(object): return bb.parse.cached_mtime_noerror(cachefile) def add_info(self, filename, info, cacheData, parsed=None): - cacheData.add_from_recipeinfo(filename, info) + if not info.skipped: + cacheData.add_from_recipeinfo(filename, info) + if not self.has_cache: return - if 'SRCREVINACTION' not in info.pv and not info.nocache: + if (info.skipped or 'SRCREVINACTION' not in info.pv) and not info.nocache: if parsed: self.cacheclean = False self.depends_cache[filename] = info diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 9861265..78ac68e 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -1169,8 +1169,7 @@ class CookerParser(object): for virtualfn, info in result: if info.skipped: self.skipped += 1 - else: - self.bb_cache.add_info(virtualfn, info, self.cooker.status, + self.bb_cache.add_info(virtualfn, info, self.cooker.status, parsed=parsed) return True diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index 042dbe9..f330c08 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py @@ -150,12 +150,17 @@ def main(server, eventHandler): logger.info(event._message) continue if isinstance(event, bb.event.ParseStarted): + if event.total == 0: + continue parseprogress = new_progress("Parsing recipes", event.total).start() continue if isinstance(event, bb.event.ParseProgress): parseprogress.update(event.current) continue if isinstance(event, bb.event.ParseCompleted): + if not parseprogress: + continue + parseprogress.finish() print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors." % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors))) -- cgit v1.1