Просмотр исходного кода

Merge topic 'use-cmWorkingDirectory'

56cccde235 cmWorkingDirectory: Add GetOldDirectory method
753817e71d CPack/FreeBSD: Use RAII to save/restore working directory

Acked-by: Kitware Robot <[email protected]>
Merge-request: !4566
Brad King 5 лет назад
Родитель
Сommit
0bc64c450c

+ 2 - 3
Source/CPack/cmCPackFreeBSDGenerator.cxx

@@ -8,6 +8,7 @@
 #include "cmGeneratedFileStream.h"
 #include "cmStringAlgorithms.h"
 #include "cmSystemTools.h"
+#include "cmWorkingDirectory.h"
 
 // Needed for ::open() and ::stat()
 #include <algorithm>
@@ -285,8 +286,7 @@ int cmCPackFreeBSDGenerator::PackageFiles()
   }
 
   std::vector<std::string>::const_iterator fileIt;
-  std::string dir = cmSystemTools::GetCurrentWorkingDirectory();
-  cmSystemTools::ChangeDirectory(toplevel);
+  cmWorkingDirectory wd(toplevel);
 
   files.erase(std::remove_if(files.begin(), files.end(), ignore_file),
               files.end());
@@ -332,6 +332,5 @@ int cmCPackFreeBSDGenerator::PackageFiles()
     }
   }
 
-  cmSystemTools::ChangeDirectory(dir);
   return 1;
 }

+ 2 - 2
Source/CPack/cmCPackGenerator.cxx

@@ -402,7 +402,6 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories(
       }
       /* rebuild symlinks in the installed tree */
       if (!symlinkedFiles.empty()) {
-        std::string curDir = cmSystemTools::GetCurrentWorkingDirectory();
         std::string goToDir = cmStrCat(tempDir, '/', subdir);
         cmCPackLogger(cmCPackLog::LOG_DEBUG,
                       "Change dir to: " << goToDir << std::endl);
@@ -441,7 +440,8 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories(
           }
         }
         cmCPackLogger(cmCPackLog::LOG_DEBUG,
-                      "Going back to: " << curDir << std::endl);
+                      "Going back to: " << workdir.GetOldDirectory()
+                                        << std::endl);
       }
     }
   }

+ 2 - 0
Source/cmWorkingDirectory.h

@@ -37,6 +37,8 @@ public:
    */
   int GetLastResult() const { return ResultCode; }
 
+  std::string const& GetOldDirectory() const { return this->OldDir; }
+
 private:
   std::string OldDir;
   int ResultCode;