diff options
author | Stephen Kelly <steveire@gmail.com> | 2015-05-24 11:00:20 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2015-05-24 11:30:24 (GMT) |
commit | 01e1cd5c1fc5e2684ec69d4916dd31ed23746055 (patch) | |
tree | 554d47feea8bc7a28abb753df88ab108c9997c9b /Source/cmake.h | |
parent | f69dcdfc380176a2c4365357c1ca85c0444087b0 (diff) | |
download | CMake-01e1cd5c1fc5e2684ec69d4916dd31ed23746055.zip CMake-01e1cd5c1fc5e2684ec69d4916dd31ed23746055.tar.gz CMake-01e1cd5c1fc5e2684ec69d4916dd31ed23746055.tar.bz2 |
cmState: Move snapshot creation to the cmake instance.
Don't create a snapshot in Initialize(), but leave the creation
responsibility to the cmake instance instead. Previously, the
cmState would Initialize() in its constructor, and the cmake instance
would re-Initialize() during Configure(). The end result was the
same and there would be one snapshot present. However, cmLocalGenerator
also created a snapshot on construction, and that one was used, leaving
the first snapshot unused, and potential for off-by-one errors.
Fix that by making the cmLocalGenerator use the existing snapshot
if it is top-level. Add a CurrentSnapshot to the cmake instance and
populated it while configuring a directory. This will eventually
replace the 'current local generator' concept. Fix the GetParent
implementation to be able to return the first snapshot.
Diffstat (limited to 'Source/cmake.h')
-rw-r--r-- | Source/cmake.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/cmake.h b/Source/cmake.h index c0a9b49..12b7e68 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -316,6 +316,10 @@ class cmake void WatchUnusedCli(const std::string& var); cmState* GetState() const { return this->State; } + void SetCurrentSnapshot(cmState::Snapshot snapshot) + { this->CurrentSnapshot = snapshot; } + cmState::Snapshot GetCurrentSnapshot() const + { return this->CurrentSnapshot; } protected: void RunCheckForUnusedVariables(); @@ -396,6 +400,7 @@ private: InstalledFilesMap InstalledFiles; cmState* State; + cmState::Snapshot CurrentSnapshot; void UpdateConversionPathTable(); |