cmCacheManager: Port away from cmake instance.

This commit is contained in:
Stephen Kelly 2015-10-10 14:26:56 +02:00
parent 062ed22ec4
commit 435a2f3ccb
4 changed files with 24 additions and 8 deletions

View File

@ -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

View File

@ -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;

View File

@ -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)

View File

@ -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)