summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2003-02-06 03:26:55 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2003-02-06 03:26:55 (GMT)
commit62b612fbf841fd8d1d4e293ad84d933133543860 (patch)
tree9f5e585824494932ec2dc85946e3a00446a38d88 /Source
parent9676bb4b22687e1265adc13647c078991d3b4c85 (diff)
downloadCMake-62b612fbf841fd8d1d4e293ad84d933133543860.zip
CMake-62b612fbf841fd8d1d4e293ad84d933133543860.tar.gz
CMake-62b612fbf841fd8d1d4e293ad84d933133543860.tar.bz2
add better testing for unlink
Diffstat (limited to 'Source')
-rw-r--r--Source/cmSystemTools.cxx10
-rw-r--r--Source/cmSystemTools.h4
-rw-r--r--Source/cmTryCompileCommand.cxx7
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());
+ }
}
}
}