BUG: Fix cache properties for CMAKE_STRICT build
All cmPropertyMap instances must have CMakeInstance set. This teaches cmCacheManager to set it on cache entries.
This commit is contained in:
parent
c6d0043e2a
commit
5e49dc4346
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue