浏览代码

ENH: make sure -Wno-dev sticks so make rebuild_cache will work

Bill Hoffman 17 年之前
父节点
当前提交
6d0845f2f8
共有 2 个文件被更改,包括 22 次插入16 次删除
  1. 21 16
      Source/cmake.cxx
  2. 1 0
      Source/cmake.h

+ 21 - 16
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<std::string>& 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);
-    }
-  else
-    {
-    this->CacheManager->
-      AddCacheEntry("CMAKE_SUPPRESS_DEVELOPER_WARNINGS", "FALSE",
-                    "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);
+      }
     }
-
   int ret = this->ActualConfigure();
   const char* delCacheVars =
     this->GetProperty("__CMAKE_DELETE_CACHE_CHANGE_VARS_");

+ 1 - 0
Source/cmake.h

@@ -388,6 +388,7 @@ protected:
   std::string cmStartDirectory; 
   std::string StartOutputDirectory;
   bool SuppressDevWarnings;
+  bool DoSuppressDevWarnings;
   std::set<cmStdString> WrittenFiles;
 
   ///! return true if the same cmake was used to make the cache.