summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmCacheManager.cxx6
-rw-r--r--Source/cmCacheManager.h4
-rw-r--r--Source/cmake.cxx2
3 files changed, 9 insertions, 3 deletions
diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx
index a263bcf..c3e577c 100644
--- a/Source/cmCacheManager.cxx
+++ b/Source/cmCacheManager.cxx
@@ -42,10 +42,11 @@ const char* cmCacheManagerTypes[] =
0
};
-cmCacheManager::cmCacheManager()
+cmCacheManager::cmCacheManager(cmake* cm)
{
this->CacheMajorVersion = 0;
this->CacheMinorVersion = 0;
+ this->CMakeInstance = cm;
}
const char* cmCacheManager::TypeToString(cmCacheManager::CacheEntryType type)
@@ -226,6 +227,7 @@ bool cmCacheManager::LoadCache(const char* path,
// Format is key:type=value
std::string helpString;
CacheEntry e;
+ e.Properties.SetCMakeInstance(this->CMakeInstance);
cmSystemTools::GetLineFromStream(fin, buffer);
realbuffer = buffer.c_str();
while(*realbuffer != '0' &&
@@ -384,6 +386,7 @@ bool cmCacheManager::ReadPropertyEntry(std::string const& entryKey,
{
// Create an entry and store the property.
CacheEntry& ne = this->Cache[key];
+ ne.Properties.SetCMakeInstance(this->CMakeInstance);
ne.Type = cmCacheManager::UNINITIALIZED;
ne.SetProperty(*p, e.Value.c_str());
}
@@ -724,6 +727,7 @@ void cmCacheManager::AddCacheEntry(const char* key,
CacheEntryType type)
{
CacheEntry& e = this->Cache[key];
+ e.Properties.SetCMakeInstance(this->CMakeInstance);
if ( value )
{
e.Value = value;
diff --git a/Source/cmCacheManager.h b/Source/cmCacheManager.h
index 4d7254d..2ac6994 100644
--- a/Source/cmCacheManager.h
+++ b/Source/cmCacheManager.h
@@ -21,6 +21,7 @@
#include "cmPropertyMap.h"
class cmMakefile;
class cmMarkAsAdvancedCommand;
+class cmake;
/** \class cmCacheManager
* \brief Control class for cmake's cache
@@ -31,7 +32,7 @@ class cmMarkAsAdvancedCommand;
class cmCacheManager
{
public:
- cmCacheManager();
+ cmCacheManager(cmake* cm);
class CacheIterator;
friend class cmCacheManager::CacheIterator;
enum CacheEntryType{ BOOL=0, PATH, FILEPATH, STRING, INTERNAL,STATIC,
@@ -175,6 +176,7 @@ protected:
unsigned int CacheMajorVersion;
unsigned int CacheMinorVersion;
private:
+ cmake* CMakeInstance;
typedef std::map<cmStdString, CacheEntry> CacheEntryMap;
static void OutputHelpString(std::ostream& fout,
const std::string& helpString);
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 825fe63..5cabc22 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -176,7 +176,7 @@ cmake::cmake()
this->Verbose = false;
this->InTryCompile = false;
- this->CacheManager = new cmCacheManager;
+ this->CacheManager = new cmCacheManager(this);
this->GlobalGenerator = 0;
this->ProgressCallback = 0;
this->ProgressCallbackClientData = 0;