From 6d0845f2f8ac5a3f362428c0a61f3e27d9c7e5e4 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Sat, 22 Mar 2008 10:24:06 -0400 Subject: [PATCH] ENH: make sure -Wno-dev sticks so make rebuild_cache will work --- Source/cmake.cxx | 37 +++++++++++++++++++++---------------- Source/cmake.h | 1 + 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/Source/cmake.cxx b/Source/cmake.cxx index b045f1c4a..88f1290b5 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -141,6 +141,7 @@ void cmNeedBackwardsCompatibility(const std::string& variable, cmake::cmake() { this->SuppressDevWarnings = false; + this->DoSuppressDevWarnings = false; this->DebugOutput = false; this->DebugTryCompile = false; this->ClearBuildSystem = false; @@ -387,10 +388,12 @@ bool cmake::SetCacheArgs(const std::vector& args) else if(arg.find("-Wno-dev",0) == 0) { this->SuppressDevWarnings = true; + this->DoSuppressDevWarnings = true; } else if(arg.find("-Wdev",0) == 0) - { + { this->SuppressDevWarnings = false; + this->DoSuppressDevWarnings = true; } else if(arg.find("-U",0) == 0) { @@ -1896,23 +1899,25 @@ int cmake::HandleDeleteCacheVariables(const char* var) int cmake::Configure() { - if(this->SuppressDevWarnings) + if(this->DoSuppressDevWarnings) { - this->CacheManager-> - AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "TRUE", - "Suppress Warnings that are meant for" - " the author of the CMakeLists.txt files.", - cmCacheManager::INTERNAL); + if(this->SuppressDevWarnings) + { + this->CacheManager-> + AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "TRUE", + "Suppress Warnings that are meant for" + " the author of the CMakeLists.txt files.", + cmCacheManager::INTERNAL); + } + else + { + this->CacheManager-> + AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "FALSE", + "Suppress Warnings that are meant for" + " the author of the CMakeLists.txt files.", + cmCacheManager::INTERNAL); + } } - else - { - this->CacheManager-> - AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "FALSE", - "Suppress Warnings that are meant for" - " the author of the CMakeLists.txt files.", - cmCacheManager::INTERNAL); - } - int ret = this->ActualConfigure(); const char* delCacheVars = this->GetProperty("__CMAKE_DELETE_CACHE_CHANGE_VARS_"); diff --git a/Source/cmake.h b/Source/cmake.h index f599c319b..8134943dd 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -388,6 +388,7 @@ protected: std::string cmStartDirectory; std::string StartOutputDirectory; bool SuppressDevWarnings; + bool DoSuppressDevWarnings; std::set WrittenFiles; ///! return true if the same cmake was used to make the cache.