diff options
Diffstat (limited to 'Source/cmake.cxx')
-rw-r--r-- | Source/cmake.cxx | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 636c766..ffb6ff2 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -65,6 +65,8 @@ # include <sys/resource.h> #endif +#include <sys/stat.h> // struct stat + #include <memory> // auto_ptr void cmNeedBackwardsCompatibility(const std::string& variable, @@ -1107,6 +1109,9 @@ int cmake::Configure() cmCacheManager::STRING); } + this->TruncateOutputLog("CMakeOutput.log"); + this->TruncateOutputLog("CMakeError.log"); + // no generator specified on the command line if(!m_GlobalGenerator) { @@ -1696,3 +1701,29 @@ int cmake::CheckBuildSystem() // No need to rerun. return 0; } + +//---------------------------------------------------------------------------- +void cmake::TruncateOutputLog(const char* fname) +{ + std::string fullPath = this->GetHomeOutputDirectory(); + fullPath += "/"; + fullPath += fname; + struct stat st; + if ( ::stat(fullPath.c_str(), &st) ) + { + return; + } + if ( !m_CacheManager->GetCacheValue("CMAKE_CACHEFILE_DIR") ) + { + cmSystemTools::RemoveFile(fullPath.c_str()); + return; + } + size_t fsize = st.st_size; + const size_t maxFileSize = 50 * 1024; + if ( fsize < maxFileSize ) + { + //TODO: truncate file + return; + } +} + |