bitbake-1.4/lib/bb/cache.py:
[vuplus_bitbake] / lib / bb / cache.py
index 3bb14c9..d4be9d7 100644 (file)
@@ -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 = <directory> 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__