diff options
-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()); + } } } } |