clean up entire temp directory

This commit is contained in:
Bill Hoffman 2002-11-21 14:59:41 -05:00
parent 1e3ddfeecf
commit c544cb4307
2 changed files with 15 additions and 11 deletions

View File

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

View File

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