summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-04-10 10:55:48 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-05-05 15:53:09 +0100
commit001a555c2f755d4f8a69b113656d9307ca7ee597 (patch)
treee922c20761aba54b8f150cf64cfa215d27ea15d1 /bitbake
parentc8928e93dd8a08d6768623f6491c9ba31d0aa06f (diff)
downloadpoky-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')
-rw-r--r--bitbake/lib/bb/cache.py11
-rw-r--r--bitbake/lib/bb/cooker.py3
-rw-r--r--bitbake/lib/bb/ui/knotty.py5
3 files changed, 14 insertions, 5 deletions
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py
index 955b400622..d083c515ed 100644
--- a/bitbake/lib/bb/cache.py
+++ b/bitbake/lib/bb/cache.py
@@ -129,7 +129,10 @@ class RecipeInfo(namedtuple('RecipeInfo', recipe_fields)):
129 @classmethod 129 @classmethod
130 def from_metadata(cls, filename, metadata): 130 def from_metadata(cls, filename, metadata):
131 if cls.getvar('__SKIPPED', metadata): 131 if cls.getvar('__SKIPPED', metadata):
132 return cls.make_optional(skipped=True) 132 return cls.make_optional(skipped=True,
133 file_depends=metadata.getVar('__depends', False),
134 timestamp=bb.parse.cached_mtime(filename),
135 variants=cls.listvar('__VARIANTS', metadata) + [''])
133 136
134 tasks = metadata.getVar('__BBTASKS', False) 137 tasks = metadata.getVar('__BBTASKS', False)
135 138
@@ -480,11 +483,13 @@ class Cache(object):
480 return bb.parse.cached_mtime_noerror(cachefile) 483 return bb.parse.cached_mtime_noerror(cachefile)
481 484
482 def add_info(self, filename, info, cacheData, parsed=None): 485 def add_info(self, filename, info, cacheData, parsed=None):
483 cacheData.add_from_recipeinfo(filename, info) 486 if not info.skipped:
487 cacheData.add_from_recipeinfo(filename, info)
488
484 if not self.has_cache: 489 if not self.has_cache:
485 return 490 return
486 491
487 if 'SRCREVINACTION' not in info.pv and not info.nocache: 492 if (info.skipped or 'SRCREVINACTION' not in info.pv) and not info.nocache:
488 if parsed: 493 if parsed:
489 self.cacheclean = False 494 self.cacheclean = False
490 self.depends_cache[filename] = info 495 self.depends_cache[filename] = info
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 98612656ab..78ac68e418 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -1169,8 +1169,7 @@ class CookerParser(object):
1169 for virtualfn, info in result: 1169 for virtualfn, info in result:
1170 if info.skipped: 1170 if info.skipped:
1171 self.skipped += 1 1171 self.skipped += 1
1172 else: 1172 self.bb_cache.add_info(virtualfn, info, self.cooker.status,
1173 self.bb_cache.add_info(virtualfn, info, self.cooker.status,
1174 parsed=parsed) 1173 parsed=parsed)
1175 return True 1174 return True
1176 1175
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py
index 042dbe902c..f330c084df 100644
--- a/bitbake/lib/bb/ui/knotty.py
+++ b/bitbake/lib/bb/ui/knotty.py
@@ -150,12 +150,17 @@ def main(server, eventHandler):
150 logger.info(event._message) 150 logger.info(event._message)
151 continue 151 continue
152 if isinstance(event, bb.event.ParseStarted): 152 if isinstance(event, bb.event.ParseStarted):
153 if event.total == 0:
154 continue
153 parseprogress = new_progress("Parsing recipes", event.total).start() 155 parseprogress = new_progress("Parsing recipes", event.total).start()
154 continue 156 continue
155 if isinstance(event, bb.event.ParseProgress): 157 if isinstance(event, bb.event.ParseProgress):
156 parseprogress.update(event.current) 158 parseprogress.update(event.current)
157 continue 159 continue
158 if isinstance(event, bb.event.ParseCompleted): 160 if isinstance(event, bb.event.ParseCompleted):
161 if not parseprogress:
162 continue
163
159 parseprogress.finish() 164 parseprogress.finish()
160 print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors." 165 print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors."
161 % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors))) 166 % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors)))