diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2017-03-01 18:40:22 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-03-06 15:38:20 (GMT) |
commit | 047a5e4d6656f362151b855b34c259708b8419ba (patch) | |
tree | 46f04ad99217759e0fcc95e7cc3ab9c109d5d57c /Source/cmWorkingDirectory.cxx | |
parent | 89891bcb9e226cc6216227634d0272adbc080c72 (diff) | |
download | CMake-047a5e4d6656f362151b855b34c259708b8419ba.zip CMake-047a5e4d6656f362151b855b34c259708b8419ba.tar.gz CMake-047a5e4d6656f362151b855b34c259708b8419ba.tar.bz2 |
cmWorkingDirectory: add class for changing the workdir
Diffstat (limited to 'Source/cmWorkingDirectory.cxx')
-rw-r--r-- | Source/cmWorkingDirectory.cxx | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Source/cmWorkingDirectory.cxx b/Source/cmWorkingDirectory.cxx new file mode 100644 index 0000000..99c9ba8 --- /dev/null +++ b/Source/cmWorkingDirectory.cxx @@ -0,0 +1,24 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmWorkingDirectory.h" + +#include "cmSystemTools.h" + +cmWorkingDirectory::cmWorkingDirectory(std::string const& newdir) +{ + this->OldDir = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::ChangeDirectory(newdir); +} + +cmWorkingDirectory::~cmWorkingDirectory() +{ + this->Pop(); +} + +void cmWorkingDirectory::Pop() +{ + if (!this->OldDir.empty()) { + cmSystemTools::ChangeDirectory(this->OldDir); + this->OldDir.clear(); + } +} |