diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/siggen.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index a7916b29bd..43cf7b6e5a 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
@@ -4,6 +4,7 @@ import os | |||
4 | import re | 4 | import re |
5 | import tempfile | 5 | import tempfile |
6 | import bb.data | 6 | import bb.data |
7 | from bb.checksum import FileChecksumCache | ||
7 | 8 | ||
8 | logger = logging.getLogger('BitBake.SigGen') | 9 | logger = logging.getLogger('BitBake.SigGen') |
9 | 10 | ||
@@ -91,6 +92,12 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
91 | self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST", True) or "").split()) | 92 | self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST", True) or "").split()) |
92 | self.taskwhitelist = None | 93 | self.taskwhitelist = None |
93 | self.init_rundepcheck(data) | 94 | self.init_rundepcheck(data) |
95 | checksum_cache_file = data.getVar("BB_HASH_CHECKSUM_CACHE_FILE", True) | ||
96 | if checksum_cache_file: | ||
97 | self.checksum_cache = FileChecksumCache() | ||
98 | self.checksum_cache.init_cache(data, checksum_cache_file) | ||
99 | else: | ||
100 | self.checksum_cache = None | ||
94 | 101 | ||
95 | def init_rundepcheck(self, data): | 102 | def init_rundepcheck(self, data): |
96 | self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST", True) or None | 103 | self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST", True) or None |
@@ -194,7 +201,10 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
194 | self.runtaskdeps[k].append(dep) | 201 | self.runtaskdeps[k].append(dep) |
195 | 202 | ||
196 | if task in dataCache.file_checksums[fn]: | 203 | if task in dataCache.file_checksums[fn]: |
197 | checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename) | 204 | if self.checksum_cache: |
205 | checksums = self.checksum_cache.get_checksums(dataCache.file_checksums[fn][task], recipename) | ||
206 | else: | ||
207 | checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename) | ||
198 | for (f,cs) in checksums: | 208 | for (f,cs) in checksums: |
199 | self.file_checksum_values[k][f] = cs | 209 | self.file_checksum_values[k][f] = cs |
200 | if cs: | 210 | if cs: |
@@ -221,8 +231,12 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
221 | 231 | ||
222 | def writeout_file_checksum_cache(self): | 232 | def writeout_file_checksum_cache(self): |
223 | """Write/update the file checksum cache onto disk""" | 233 | """Write/update the file checksum cache onto disk""" |
224 | bb.fetch2.fetcher_parse_save() | 234 | if self.checksum_cache: |
225 | bb.fetch2.fetcher_parse_done() | 235 | self.checksum_cache.save_extras() |
236 | self.checksum_cache.save_merge() | ||
237 | else: | ||
238 | bb.fetch2.fetcher_parse_save() | ||
239 | bb.fetch2.fetcher_parse_done() | ||
226 | 240 | ||
227 | def dump_sigtask(self, fn, task, stampbase, runtime): | 241 | def dump_sigtask(self, fn, task, stampbase, runtime): |
228 | k = fn + "." + task | 242 | k = fn + "." + task |