diff options
-rw-r--r-- | Source/cmCacheManager.cxx | 4 | ||||
-rw-r--r-- | Source/cmCacheManager.h | 3 | ||||
-rw-r--r-- | Source/cmState.cxx | 1 | ||||
-rw-r--r-- | Source/cmake.cxx | 24 |
4 files changed, 24 insertions, 8 deletions
diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx index 9dac27b..bfa60b3 100644 --- a/Source/cmCacheManager.cxx +++ b/Source/cmCacheManager.cxx @@ -21,11 +21,10 @@ #include <cmsys/FStream.hxx> #include <cmsys/RegularExpression.hxx> -cmCacheManager::cmCacheManager(cmake* cm) +cmCacheManager::cmCacheManager() { this->CacheMajorVersion = 0; this->CacheMinorVersion = 0; - this->CMakeInstance = cm; } static bool ParseEntryWithoutType(const std::string& entry, @@ -671,7 +670,6 @@ void cmCacheManager::AddCacheEntry(const std::string& key, } e.SetProperty("HELPSTRING", helpString? helpString : "(This variable does not exist and should not be used)"); - this->CMakeInstance->UnwatchUnusedCli(key); } bool cmCacheManager::CacheIterator::IsAtEnd() const diff --git a/Source/cmCacheManager.h b/Source/cmCacheManager.h index 76533b5..2440066 100644 --- a/Source/cmCacheManager.h +++ b/Source/cmCacheManager.h @@ -17,7 +17,6 @@ #include "cmState.h" class cmMarkAsAdvancedCommand; -class cmake; /** \class cmCacheManager * \brief Control class for cmake's cache @@ -28,7 +27,7 @@ class cmake; class cmCacheManager { public: - cmCacheManager(cmake* cm); + cmCacheManager(); class CacheIterator; friend class cmCacheManager::CacheIterator; diff --git a/Source/cmState.cxx b/Source/cmState.cxx index 9628265..a42d075 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -252,6 +252,7 @@ void cmState::AddCacheEntry(const std::string& key, const char* value, { this->CMakeInstance->GetCacheManager()->AddCacheEntry(key, value, helpString, type); + this->CMakeInstance->UnwatchUnusedCli(key); } void cmState::RemoveCacheEntry(std::string const& key) diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 4fc48d5..69a3f03 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -151,7 +151,7 @@ cmake::cmake() #endif this->Verbose = false; - this->CacheManager = new cmCacheManager(this); + this->CacheManager = new cmCacheManager; this->GlobalGenerator = 0; this->ProgressCallback = 0; this->ProgressCallbackClientData = 0; @@ -1760,12 +1760,30 @@ bool cmake::LoadCache(const std::string& path, bool internal, std::set<std::string>& excludes, std::set<std::string>& includes) { - return this->State->LoadCache(path, internal, excludes, includes); + bool result = this->State->LoadCache(path, internal, excludes, includes); + static const char* entries[] = {"CMAKE_CACHE_MAJOR_VERSION", + "CMAKE_CACHE_MINOR_VERSION"}; + for (const char* const* nameIt = cmArrayBegin(entries); + nameIt != cmArrayEnd(entries); ++nameIt) + { + this->UnwatchUnusedCli(*nameIt); + } + return result; } bool cmake::SaveCache(const std::string& path) { - return this->State->SaveCache(path); + bool result = this->State->SaveCache(path); + static const char* entries[] = {"CMAKE_CACHE_MAJOR_VERSION", + "CMAKE_CACHE_MINOR_VERSION", + "CMAKE_CACHE_PATCH_VERSION", + "CMAKE_CACHEFILE_DIR"}; + for (const char* const* nameIt = cmArrayBegin(entries); + nameIt != cmArrayEnd(entries); ++nameIt) + { + this->UnwatchUnusedCli(*nameIt); + } + return result; } bool cmake::DeleteCache(const std::string& path) |