Browse Source

clean up entire temp directory

Bill Hoffman 23 years ago
parent
commit
c544cb4307
2 changed files with 15 additions and 11 deletions
  1. 14 10
      Source/cmTryCompileCommand.cxx
  2. 1 1
      Source/cmTryCompileCommand.h

+ 14 - 10
Source/cmTryCompileCommand.cxx

@@ -229,22 +229,19 @@ bool cmTryCompileCommand::InitialPass(std::vector<std::string> const& argv)
 
 static void cmTryCompileCommandNotUsed(bool){}
 
-void cmTryCompileCommand::CleanupFiles(const char* binDir, bool recursive)
+void cmTryCompileCommand::CleanupFiles(const char* binDir)
 {
   if ( !binDir )
     {
     return;
     }
-  cmTryCompileCommandNotUsed(recursive);
-#ifdef WIN32
-  if ( recursive )
+  std::string bdir = binDir;
+  if(bdir.find("CMakeTmp") == std::string::npos)
     {
-    std::string bdir = binDir;
-    bdir += "/Debug";
-    cmTryCompileCommand::CleanupFiles(bdir.c_str(), false);
+    cmSystemTools::Error("TRY_COMPILE attempt to remove -rf directory that does not contain CMakeTmp:", binDir);
+    return;
     }
-#endif
-
+  
   cmDirectory dir;
   dir.Load(binDir);
   size_t fileNum;
@@ -256,7 +253,14 @@ void cmTryCompileCommand::CleanupFiles(const char* binDir, bool recursive)
       std::string fullPath = binDir;
       fullPath += "/";
       fullPath += dir.GetFile(fileNum);
-      cmSystemTools::RemoveFile(fullPath.c_str());
+      if(cmSystemTools::FileIsDirectory(fullPath.c_str()))
+        {
+        cmTryCompileCommand::CleanupFiles(fullPath.c_str());
+        }
+      else
+        {
+        cmSystemTools::RemoveFile(fullPath.c_str());
+        }
       }
     }
 }

+ 1 - 1
Source/cmTryCompileCommand.h

@@ -68,7 +68,7 @@ public:
    * code. This way we do not have to rely on the timing and
    * dependencies of makefiles.
    */
-  static void CleanupFiles(const char* binDir, bool recursive=true);
+  static void CleanupFiles(const char* binDir);
   
   /**
    * More documentation.  */