Browse Source

ENH: add ability to suppress dev warnings to gui code

Bill Hoffman 17 years ago
parent
commit
fc26c1459c
2 changed files with 25 additions and 13 deletions
  1. 20 12
      Source/cmake.cxx
  2. 5 1
      Source/cmake.h

+ 20 - 12
Source/cmake.cxx

@@ -139,6 +139,7 @@ void cmNeedBackwardsCompatibility(const std::string& variable,
 
 cmake::cmake()
 {
+  this->SuppressDevWarnings = false;
   this->DebugOutput = false;
   this->DebugTryCompile = false;
   this->ClearBuildSystem = false;
@@ -376,20 +377,11 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args)
       }
     else if(arg.find("-Wno-dev",0) == 0)
       {
-      this->CacheManager->
-        AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "TRUE",
-                      "Suppress Warnings that are meant for"
-                      " the author of the CMakeLists.txt files.",
-                      cmCacheManager::INTERNAL);
+      this->SuppressDevWarnings = true;
       }
     else if(arg.find("-Wdev",0) == 0)
       {
-      this->CacheManager->
-        AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "FALSE",
-                      "Suppress Warnings that are meant for"
-                      " the author of the CMakeLists.txt files.",
-                      cmCacheManager::INTERNAL);
-      
+      this->SuppressDevWarnings = false;
       }
     else if(arg.find("-U",0) == 0)
       {
@@ -1885,6 +1877,23 @@ int cmake::HandleDeleteCacheVariables(const char* var)
 
 int cmake::Configure()
 {
+  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);
+    }
+
   int ret = this->ActualConfigure();
   const char* delCacheVars =
     this->GetProperty("__CMAKE_DELETE_CACHE_CHANGE_VARS_");
@@ -2185,7 +2194,6 @@ int cmake::Run(const std::vector<std::string>& args, bool noconfigure)
     {
     this->AddCMakePaths();
     }
-
   // Add any cache args
   if ( !this->SetCacheArgs(args) )
     {

+ 5 - 1
Source/cmake.h

@@ -344,6 +344,10 @@ class cmake
     {
       this->CMakeEditCommand = s;
     }
+  void SetSuppressDevWarnings(bool v)
+    {
+      this->SuppressDevWarnings = v;
+    }
 protected:
   int HandleDeleteCacheVariables(const char* var);
   cmPropertyMap Properties;
@@ -376,7 +380,7 @@ protected:
   std::string HomeOutputDirectory;
   std::string cmStartDirectory; 
   std::string StartOutputDirectory;
-
+  bool SuppressDevWarnings;
   std::set<cmStdString> WrittenFiles;
 
   ///! return true if the same cmake was used to make the cache.