diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2002-09-23 15:06:01 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2002-09-23 15:06:01 (GMT) |
commit | e6406f681de91c0a39478a6e42fb43787bea077b (patch) | |
tree | 71018cbe94ff6073a4bac3cfb75d529264fc2a7b /Source/cmTryCompileCommand.cxx | |
parent | 9cf39703dca89a2d9c21c62df9513233aaf41573 (diff) | |
download | CMake-e6406f681de91c0a39478a6e42fb43787bea077b.zip CMake-e6406f681de91c0a39478a6e42fb43787bea077b.tar.gz CMake-e6406f681de91c0a39478a6e42fb43787bea077b.tar.bz2 |
Abstract cleaning of files and add code that deletes files from Debug subdirectory
Diffstat (limited to 'Source/cmTryCompileCommand.cxx')
-rw-r--r-- | Source/cmTryCompileCommand.cxx | 47 |
1 files changed, 31 insertions, 16 deletions
diff --git a/Source/cmTryCompileCommand.cxx b/Source/cmTryCompileCommand.cxx index 4351ffb..cc949d1 100644 --- a/Source/cmTryCompileCommand.cxx +++ b/Source/cmTryCompileCommand.cxx @@ -182,21 +182,8 @@ int cmTryCompileCommand::CoreTryCompileCode( // if They specified clean then we clean up what we can if (srcFileSignature && clean) { - cmDirectory dir; - dir.Load(binaryDirectory); - size_t fileNum; - for (fileNum = 0; fileNum < dir.GetNumberOfFiles(); ++fileNum) - { - if (strcmp(dir.GetFile(fileNum),".") && - strcmp(dir.GetFile(fileNum),"..")) - { - std::string fullPath = binaryDirectory; - fullPath += "/"; - fullPath += dir.GetFile(fileNum); - cmSystemTools::RemoveFile(fullPath.c_str()); - } - } cmListFileCache::GetInstance()->FlushCache(outFileName.c_str()); + cmTryCompileCommand::CleanupFiles(binaryDirectory); } return res; @@ -219,6 +206,34 @@ bool cmTryCompileCommand::InitialPass(std::vector<std::string> const& argv) return true; } + +void cmTryCompileCommand::CleanupFiles(const char* binDir, bool recursive) +{ + if ( !binDir ) + { + return; + } +#ifdef WIN32 + if ( recursive ) + { + std::string bdir = binDir; + bdir += "/Debug"; + cmTryCompileCommand::CleanupFiles(bdir.c_str(), false); + } +#endif - - + cmDirectory dir; + dir.Load(binDir); + size_t fileNum; + for (fileNum = 0; fileNum < dir.GetNumberOfFiles(); ++fileNum) + { + if (strcmp(dir.GetFile(fileNum),".") && + strcmp(dir.GetFile(fileNum),"..")) + { + std::string fullPath = binDir; + fullPath += "/"; + fullPath += dir.GetFile(fileNum); + cmSystemTools::RemoveFile(fullPath.c_str()); + } + } +} |