summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-06-13 23:08:34 (GMT)
committerStephen Kelly <steveire@gmail.com>2015-06-21 18:19:53 (GMT)
commit217c243db04a21763848ac048edf153cd93bd883 (patch)
tree7b848de03d8347ff288124e138c3fadff0952b6d /Source
parenteb05dcd6c9b587eeb8738d9f08459d94733708f6 (diff)
downloadCMake-217c243db04a21763848ac048edf153cd93bd883.zip
CMake-217c243db04a21763848ac048edf153cd93bd883.tar.gz
CMake-217c243db04a21763848ac048edf153cd93bd883.tar.bz2
cmake: Update the current snapshot when Resetting.
This will matter when definitions are stored in the cmState.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmState.cxx6
-rw-r--r--Source/cmState.h2
-rw-r--r--Source/cmake.cxx3
3 files changed, 7 insertions, 4 deletions
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index f0c7e6d..58500cc 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -219,13 +219,13 @@ void cmState::RemoveCacheEntryProperty(std::string const& key,
->GetCacheIterator(key.c_str()).SetProperty(propertyName, (void*)0);
}
-void cmState::Reset()
+cmState::Snapshot cmState::Reset()
{
this->GlobalProperties.clear();
this->PropertyDefinitions.clear();
this->BuildsystemDirectory.Truncate();
- this->SnapshotData.Truncate();
+ PositionType pos = this->SnapshotData.Truncate();
this->DefineProperty
("RULE_LAUNCH_COMPILE", cmProperty::DIRECTORY,
@@ -246,6 +246,8 @@ void cmState::Reset()
this->DefineProperty
("RULE_LAUNCH_CUSTOM", cmProperty::TARGET,
"", "", true);
+
+ return Snapshot(this, pos);
}
void cmState::DefineProperty(const std::string& name,
diff --git a/Source/cmState.h b/Source/cmState.h
index 070a08b..9c7574f 100644
--- a/Source/cmState.h
+++ b/Source/cmState.h
@@ -105,7 +105,7 @@ public:
void RemoveCacheEntryProperty(std::string const& key,
std::string const& propertyName);
- void Reset();
+ Snapshot Reset();
// Define a property
void DefineProperty(const std::string& name, cmProperty::ScopeType scope,
const char *ShortDescription,
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index eeb6575..e51b260 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -186,7 +186,7 @@ cmake::~cmake()
void cmake::CleanupCommandsAndMacros()
{
- this->State->Reset();
+ this->CurrentSnapshot = this->State->Reset();
this->State->RemoveUserDefinedCommands();
}
@@ -370,6 +370,7 @@ void cmake::ReadListFile(const std::vector<std::string>& args,
// read in the list file to fill the cache
if(path)
{
+ this->CurrentSnapshot = this->State->Reset();
std::string homeDir = this->GetHomeDirectory();
std::string homeOutputDir = this->GetHomeOutputDirectory();
this->SetHomeDirectory(cmSystemTools::GetCurrentWorkingDirectory());