|
|
@@ -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();
|
|
|
+ }
|
|
|
+}
|