diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-04-10 10:55:48 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-05 15:53:09 +0100 |
commit | 001a555c2f755d4f8a69b113656d9307ca7ee597 (patch) | |
tree | e922c20761aba54b8f150cf64cfa215d27ea15d1 /bitbake/lib | |
parent | c8928e93dd8a08d6768623f6491c9ba31d0aa06f (diff) | |
download | ast2050-yocto-poky-001a555c2f755d4f8a69b113656d9307ca7ee597.zip ast2050-yocto-poky-001a555c2f755d4f8a69b113656d9307ca7ee597.tar.gz |
bitbake/cache.py: Ensure skipped recipes make it into the cache to avoid reparsing
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/cache.py | 11 | ||||
-rw-r--r-- | bitbake/lib/bb/cooker.py | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/knotty.py | 5 |
3 files changed, 14 insertions, 5 deletions
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))) |