X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fbb%2Fcache.py;h=d4be9d7ff92194f336e22aeacb7042ba2d6e54b8;hb=f35d94400aef4d61afd9a6e19bd2dd3681fe17cc;hp=3bb14c99d7eada7d1d26e12aba47dc89302eb4bd;hpb=eae1d47349f0527200f607d49f1ce5752ab90ed9;p=vuplus_bitbake diff --git a/lib/bb/cache.py b/lib/bb/cache.py index 3bb14c9..d4be9d7 100644 --- a/lib/bb/cache.py +++ b/lib/bb/cache.py @@ -48,17 +48,21 @@ class Cache: """ def __init__(self, cooker): + self.cachedir = bb.data.getVar("CACHE", cooker.configuration.data, True) - self.cachefile = os.path.join(self.cachedir,"bb_cache.dat") self.clean = {} self.depends_cache = {} self.data = None self.data_fn = None if self.cachedir in [None, '']: + self.has_cache = False if cooker.cb is not None: print "NOTE: Not using a cache. Set CACHE = to enable." else: + self.has_cache = True + self.cachefile = os.path.join(self.cachedir,"bb_cache.dat") + if cooker.cb is not None: print "NOTE: Using cache in '%s'" % self.cachedir try: @@ -66,7 +70,7 @@ class Cache: except OSError: bb.mkdirhier( self.cachedir ) - if (self.mtime(self.cachefile)): + if self.has_cache and (self.mtime(self.cachefile)): try: p = pickle.Unpickler( file(self.cachefile,"rb")) self.depends_cache, version_data = p.load() @@ -153,7 +157,7 @@ class Cache: Fast version, no timestamps checked. """ # Is cache enabled? - if self.cachedir in [None, '']: + if not self.has_cache: return False if fn in self.clean: return True @@ -165,30 +169,25 @@ class Cache: Make thorough (slower) checks including timestamps. """ # Is cache enabled? - if self.cachedir in [None, '']: + if not self.has_cache: return False # Check file still exists if self.mtime(fn) == 0: bb.debug(2, "Cache: %s not longer exists" % fn) - if fn in self.clean: - del self.clean[fn] - if fn in self.depends_cache: - del self.depends_cache[fn] + self.remove(fn) return False # File isn't in depends_cache if not fn in self.depends_cache: bb.debug(2, "Cache: %s is not cached" % fn) - if fn in self.clean: - del self.clean[fn] + self.remove(fn) return False # Check the file's timestamp if bb.parse.cached_mtime(fn) > self.getVar("CACHETIMESTAMP", fn, True): bb.debug(2, "Cache: %s changed" % fn) - if fn in self.clean: - del self.clean[fn] + self.remove(fn) return False # Check dependencies are still valid @@ -201,8 +200,7 @@ class Cache: new_mtime = bb.parse.cached_mtime(f) if (new_mtime > old_mtime): bb.debug(2, "Cache: %s's dependency %s changed" % (fn, f)) - if fn in self.clean: - del self.clean[fn] + self.remove(fn) return False bb.debug(2, "Depends Cache: %s is clean" % fn) @@ -225,9 +223,11 @@ class Cache: Remove a fn from the cache Called from the parser in error cases """ - bb.note("Removing %s from cache" % fn) + bb.debug(1, "Removing %s from cache" % fn) if fn in self.depends_cache: del self.depends_cache[fn] + if fn in self.clean: + del self.clean[fn] def sync(self): """ @@ -235,6 +235,9 @@ class Cache: Called from the parser when complete (or exitting) """ + if not self.has_cache: + return + version_data = {} version_data['CACHE_VER'] = __cache_version__ version_data['BITBAKE_VER'] = bb.__version__