1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
3 #include "cmWorkingDirectory.h"
7 #include "cmSystemTools.h"
9 cmWorkingDirectory::cmWorkingDirectory(std::string const& newdir)
11 this->OldDir = cmSystemTools::GetCurrentWorkingDirectory();
12 this->SetDirectory(newdir);
15 cmWorkingDirectory::~cmWorkingDirectory()
20 bool cmWorkingDirectory::SetDirectory(std::string const& newdir)
22 if (cmSystemTools::ChangeDirectory(newdir)) {
26 this->ResultCode = errno;
30 void cmWorkingDirectory::Pop()
32 if (!this->OldDir.empty()) {
33 this->SetDirectory(this->OldDir);