Browse Source

added ability to load another cache

Ken Martin 24 years ago
parent
commit
36b4fbb1f4
2 changed files with 12 additions and 2 deletions
  1. 11 2
      Source/cmCacheManager.cxx
  2. 1 0
      Source/cmCacheManager.h

+ 11 - 2
Source/cmCacheManager.cxx

@@ -89,6 +89,11 @@ bool cmCacheManager::LoadCache(cmMakefile* mf)
 
 
 bool cmCacheManager::LoadCache(const char* path)
+{
+  this->LoadCache(path,true);
+}
+bool cmCacheManager::LoadCache(const char* path,
+			       bool internal)
 {
   std::string cacheFile = path;
   cacheFile += "/CMakeCache.txt";
@@ -125,8 +130,12 @@ bool cmCacheManager::LoadCache(const char* path)
     if(reg.find(buffer))
       {
       e.m_Type = cmCacheManager::StringToType(reg.match(2).c_str());
-      e.m_Value = reg.match(3);
-      m_Cache[reg.match(1)] = e;
+      // only load internal values if internal is set
+      if (internal || e.m_Type != INTERNAL)
+	{
+	  e.m_Value = reg.match(3);
+	  m_Cache[reg.match(1)] = e;
+	}
       }
     else
       {

+ 1 - 0
Source/cmCacheManager.h

@@ -78,6 +78,7 @@ public:
   bool LoadCache(cmMakefile*); 
   //! Load a cache for given makefile.  Loads from path/CMakeCache.txt.
   bool LoadCache(const char* path);
+  bool LoadCache(const char* path, bool internal);
 
   //! Put cache definitions into makefile
   void DefineCache(cmMakefile*);