cmSystemTools: Return KWSys Status from RepeatedRemoveDirectory

This provides the OS-reported error on failure.
This commit is contained in:
Brad King
2025-10-28 15:51:30 -04:00
committed by hanna.rusakovich
parent f9fcb89eba
commit a2a626055b
2 changed files with 8 additions and 8 deletions

View File

@@ -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
}

View File

@@ -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,