mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-08 14:50:10 -06:00
cmSystemTools: Return KWSys Status from RepeatedRemoveDirectory
This provides the OS-reported error on failure.
This commit is contained in:
committed by
hanna.rusakovich
parent
f9fcb89eba
commit
a2a626055b
@@ -4194,21 +4194,21 @@ bool cmSystemTools::CheckRPath(std::string const& file,
|
||||
return newRPath.empty();
|
||||
}
|
||||
|
||||
bool cmSystemTools::RepeatedRemoveDirectory(std::string const& dir)
|
||||
cmsys::Status cmSystemTools::RepeatedRemoveDirectory(std::string const& dir)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
// Windows sometimes locks files temporarily so try a few times.
|
||||
WindowsFileRetry retry = cmSystemTools::GetWindowsFileRetry();
|
||||
|
||||
for (unsigned int i = 0; i < retry.Count; ++i) {
|
||||
if (cmSystemTools::RemoveADirectory(dir)) {
|
||||
return true;
|
||||
}
|
||||
cmsys::Status status;
|
||||
unsigned int tries = 0;
|
||||
while (!(status = cmSystemTools::RemoveADirectory(dir)) &&
|
||||
++tries < retry.Count) {
|
||||
cmSystemTools::Delay(retry.Delay);
|
||||
}
|
||||
return false;
|
||||
return status;
|
||||
#else
|
||||
return static_cast<bool>(cmSystemTools::RemoveADirectory(dir));
|
||||
return cmSystemTools::RemoveADirectory(dir);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -644,7 +644,7 @@ public:
|
||||
static bool CheckRPath(std::string const& file, std::string const& newRPath);
|
||||
|
||||
/** Remove a directory; repeat a few times in case of locked files. */
|
||||
static bool RepeatedRemoveDirectory(std::string const& dir);
|
||||
static cmsys::Status RepeatedRemoveDirectory(std::string const& dir);
|
||||
|
||||
/** Encode a string as a URL. */
|
||||
static std::string EncodeURL(std::string const& in,
|
||||
|
||||
Reference in New Issue
Block a user