diff options
author | Brad King <brad.king@kitware.com> | 2010-06-04 18:32:08 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2010-06-04 18:32:08 (GMT) |
commit | fdb5f78705f1a603d176a0976c931dd197567ff9 (patch) | |
tree | 3133f91aaf9fe5aeb44cc1ff22c8d0379bc4a725 /Source/cmSystemTools.cxx | |
parent | 3ac3dea6f0eb1ce68b321020ecdd336b3db8a0fe (diff) | |
download | CMake-fdb5f78705f1a603d176a0976c931dd197567ff9.zip CMake-fdb5f78705f1a603d176a0976c931dd197567ff9.tar.gz CMake-fdb5f78705f1a603d176a0976c931dd197567ff9.tar.bz2 |
CPack: Try harder to remove temporary dir (#10793)
Windows filesystems sometimes lock files temporarily. Try removing the
CPack temp install folder multiple times before giving up.
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r-- | Source/cmSystemTools.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index d914203..5f7cfa3 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -2938,3 +2938,18 @@ bool cmSystemTools::CheckRPath(std::string const& file, return false; #endif } + +//---------------------------------------------------------------------------- +bool cmSystemTools::RepeatedRemoveDirectory(const char* dir) +{ + // Windows sometimes locks files temporarily so try a few times. + for(int i = 0; i < 10; ++i) + { + if(cmSystemTools::RemoveADirectory(dir)) + { + return true; + } + cmSystemTools::Delay(100); + } + return false; +} |