diff options
author | David Cole <david.cole@kitware.com> | 2009-12-23 19:34:46 (GMT) |
---|---|---|
committer | David Cole <david.cole@kitware.com> | 2009-12-23 19:34:46 (GMT) |
commit | 4d3a387ac6cca006ca3b35c67f562fa15702fa4c (patch) | |
tree | f7d0f06bf126cc88243847f982c37cfd9eb68a5b /Source/cmSystemTools.h | |
parent | 68ed752b7db18013641683c139c3aa0671f2d757 (diff) | |
download | CMake-4d3a387ac6cca006ca3b35c67f562fa15702fa4c.zip CMake-4d3a387ac6cca006ca3b35c67f562fa15702fa4c.tar.gz CMake-4d3a387ac6cca006ca3b35c67f562fa15702fa4c.tar.bz2 |
Preserve environment variables across calls to cmCTestScriptHandler::RunConfigurationScript. This will help prevent problems like we are currently experiencing (regarding CMake continuous dashboards only running once each day because the HOME environment variable is modified indirectly by a command in a called script, but affects the environment in the calling script).
Diffstat (limited to 'Source/cmSystemTools.h')
-rw-r--r-- | Source/cmSystemTools.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h index e5bb305..ed924dd 100644 --- a/Source/cmSystemTools.h +++ b/Source/cmSystemTools.h @@ -358,6 +358,20 @@ public: AppendEnv to put the environment back to the way it was. */ static void RestoreEnv(const std::vector<std::string>& env); + + /** Helper class to save and restore the environment. + Instantiate this class as an automatic variable on + the stack. Its constructor saves a copy of the current + environment and then its destructor restores the + original environment. */ + class SaveRestoreEnvironment + { + public: + SaveRestoreEnvironment(); + virtual ~SaveRestoreEnvironment(); + private: + std::vector<std::string> Env; + }; #endif /** Setup the environment to enable VS 8 IDE output. */ |