diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-07-03 02:25:43 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-07-03 02:25:43 (GMT) |
commit | 69ca8776a8a63fcc4d14f59afc1ab8980bb70e9e (patch) | |
tree | f304319e636d26ad478e83e43346f873a69fd26d | |
parent | 5a25895c1cd62a638b270b8d9aaa15a5d500647b (diff) | |
download | CMake-69ca8776a8a63fcc4d14f59afc1ab8980bb70e9e.zip CMake-69ca8776a8a63fcc4d14f59afc1ab8980bb70e9e.tar.gz CMake-69ca8776a8a63fcc4d14f59afc1ab8980bb70e9e.tar.bz2 |
ENH: Start adding the code that will truncate output logs
-rw-r--r-- | Source/cmake.cxx | 31 | ||||
-rw-r--r-- | Source/cmake.h | 4 |
2 files changed, 35 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; + } +} + diff --git a/Source/cmake.h b/Source/cmake.h index 3f92de4..4e61c5f 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -283,6 +283,10 @@ protected: bool CacheVersionMatches(); ///! read in a cmake list file to initialize the cache void ReadListFile(const char *path); + + ///! Check if CMAKE_CACHEFILE_DIR is set. If it is not, delete the log file. + /// If it is set, truncate it to 50kb + void TruncateOutputLog(const char* fname); /** * Method called to check build system integrity at build time. |