Browse Source

Fix reading of advanced values from CMakeCache

Andy Cedilnik 23 years ago
parent
commit
f68f7c2550
1 changed files with 6 additions and 4 deletions
  1. 6 4
      Source/cmCacheManager.cxx

+ 6 - 4
Source/cmCacheManager.cxx

@@ -185,6 +185,7 @@ bool cmCacheManager::LoadCache(const char* path,
                strcmp(entryKey.c_str() + (entryKey.size() - strlen("-ADVANCED")),
                       "-ADVANCED") == 0 )
             {
+	    std::string value = e.m_Value;
             std::string akey = entryKey.substr(0, (entryKey.size() - strlen("-ADVANCED")));
             cmCacheManager::CacheIterator it = this->GetCacheIterator(akey.c_str());
             if ( it.IsAtEnd() )
@@ -192,10 +193,11 @@ bool cmCacheManager::LoadCache(const char* path,
               e.m_Type = cmCacheManager::UNINITIALIZED;
               m_Cache[akey] = e;
               }
-            else
-              {
-              it.SetProperty("ADVANCED", true);
-              }
+	    if (!it.Find(akey.c_str()))
+	      {
+	      cmSystemTools::Error("Internal CMake error when reading cache");
+	      }
+	    it.SetProperty("ADVANCED", value.c_str());
             }
           else
             {