CPack/FreeBSD: Use RAII to save/restore working directory

This commit is contained in:
Brad King
2020-04-03 09:43:04 -04:00
parent f4e4b41a19
commit 753817e71d
+2 -3
View File
@@ -8,6 +8,7 @@
#include "cmGeneratedFileStream.h" #include "cmGeneratedFileStream.h"
#include "cmStringAlgorithms.h" #include "cmStringAlgorithms.h"
#include "cmSystemTools.h" #include "cmSystemTools.h"
#include "cmWorkingDirectory.h"
// Needed for ::open() and ::stat() // Needed for ::open() and ::stat()
#include <algorithm> #include <algorithm>
@@ -285,8 +286,7 @@ int cmCPackFreeBSDGenerator::PackageFiles()
} }
std::vector<std::string>::const_iterator fileIt; std::vector<std::string>::const_iterator fileIt;
std::string dir = cmSystemTools::GetCurrentWorkingDirectory(); cmWorkingDirectory wd(toplevel);
cmSystemTools::ChangeDirectory(toplevel);
files.erase(std::remove_if(files.begin(), files.end(), ignore_file), files.erase(std::remove_if(files.begin(), files.end(), ignore_file),
files.end()); files.end());
@@ -332,6 +332,5 @@ int cmCPackFreeBSDGenerator::PackageFiles()
} }
} }
cmSystemTools::ChangeDirectory(dir);
return 1; return 1;
} }