diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2003-02-06 03:26:55 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2003-02-06 03:26:55 (GMT) |
commit | 62b612fbf841fd8d1d4e293ad84d933133543860 (patch) | |
tree | 9f5e585824494932ec2dc85946e3a00446a38d88 /Source | |
parent | 9676bb4b22687e1265adc13647c078991d3b4c85 (diff) | |
download | CMake-62b612fbf841fd8d1d4e293ad84d933133543860.zip CMake-62b612fbf841fd8d1d4e293ad84d933133543860.tar.gz CMake-62b612fbf841fd8d1d4e293ad84d933133543860.tar.bz2 |
add better testing for unlink
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmSystemTools.cxx | 10 | ||||
-rw-r--r-- | Source/cmSystemTools.h | 4 | ||||
-rw-r--r-- | Source/cmTryCompileCommand.cxx | 7 |
3 files changed, 19 insertions, 2 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 95f4d59..b395c98 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -15,7 +15,6 @@ =========================================================================*/ #include "cmSystemTools.h" -#include "errno.h" #include <stdio.h> #include <sys/stat.h> #include "cmRegularExpression.h" @@ -1166,6 +1165,15 @@ long int cmSystemTools::ModifiedTime(const char* filename) } +void cmSystemTools::ReportLastSystemError(const char* msg) +{ + int e = errno; + std::string m = msg; + m += ": System Error: "; + m += strerror(e); + cmSystemTools::Error(m.c_str()); +} + bool cmSystemTools::RemoveFile(const char* source) { diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h index c977ced..3cd3321 100644 --- a/Source/cmSystemTools.h +++ b/Source/cmSystemTools.h @@ -353,6 +353,10 @@ public: */ static void SetRunCommandHideConsole(bool v){s_RunCommandHideConsole = v;} static bool GetRunCommandHideConsole(){ return s_RunCommandHideConsole;} + /** Call cmSystemTools::Error with the message m, plus the + * result of strerror(errno) + */ + static void ReportLastSystemError(const char* m); /** When building DEBUG with MSVC, this enables a hook that prevents * error dialogs from popping up if the program is being run from diff --git a/Source/cmTryCompileCommand.cxx b/Source/cmTryCompileCommand.cxx index 9a0a6ac..e2848da 100644 --- a/Source/cmTryCompileCommand.cxx +++ b/Source/cmTryCompileCommand.cxx @@ -280,7 +280,12 @@ void cmTryCompileCommand::CleanupFiles(const char* binDir) } else { - cmSystemTools::RemoveFile(fullPath.c_str()); + if(!cmSystemTools::RemoveFile(fullPath.c_str())) + { + std::string m = "Remove failed on file: "; + m += fullPath; + cmSystemTools::ReportLastSystemError(m.c_str()); + } } } } |