Explorar o código

added option to shut off automatic rebuilding

Ken Martin %!s(int64=23) %!d(string=hai) anos
pai
achega
61da8f64bf

+ 13 - 6
Source/cmLocalVisualStudio6Generator.cxx

@@ -247,16 +247,23 @@ void cmLocalVisualStudio6Generator::WriteDSPFile(std::ostream& fout,
   // Write the DSP file's header.
   this->WriteDSPHeader(fout, libName, target, sourceGroups);
   
+  // if we should add regen rule then...
+  const char *suppRegenRule = 
+    m_Makefile->GetDefinition("CMAKE_SUPPRESS_REGENERATION");
+  
   // Find the group in which the CMakeLists.txt source belongs, and add
   // the rule to generate this DSP file.
-  for(std::vector<cmSourceGroup>::reverse_iterator sg = sourceGroups.rbegin();
-      sg != sourceGroups.rend(); ++sg)
+  if (!cmSystemTools::IsOn(suppRegenRule))
     {
-    if(sg->Matches("CMakeLists.txt"))
+    for(std::vector<cmSourceGroup>::reverse_iterator sg = sourceGroups.rbegin();
+        sg != sourceGroups.rend(); ++sg)
       {
-      this->AddDSPBuildRule(*sg);
-      break;
-      }    
+      if(sg->Matches("CMakeLists.txt"))
+        {
+        this->AddDSPBuildRule(*sg);
+        break;
+        }    
+      }
     }
   
   // Loop through every source group.

+ 15 - 7
Source/cmLocalVisualStudio7Generator.cxx

@@ -656,18 +656,26 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
   this->WriteConfigurations(fout, libName, target);
 
   fout << "\t<Files>\n";
+
+  // if we should add regen rule then...
+  const char *suppRegenRule = 
+    m_Makefile->GetDefinition("CMAKE_SUPPRESS_REGENERATION");
+
   // Find the group in which the CMakeLists.txt source belongs, and add
   // the rule to generate this VCProj file.
-  for(std::vector<cmSourceGroup>::reverse_iterator sg = sourceGroups.rbegin();
-      sg != sourceGroups.rend(); ++sg)
+  if (!cmSystemTools::IsOn(suppRegenRule))
     {
-    if(sg->Matches("CMakeLists.txt"))
+    for(std::vector<cmSourceGroup>::reverse_iterator sg = 
+          sourceGroups.rbegin();
+        sg != sourceGroups.rend(); ++sg)
       {
-      this->AddVCProjBuildRule(*sg);
-      break;
-      }    
+      if(sg->Matches("CMakeLists.txt"))
+        {
+        this->AddVCProjBuildRule(*sg);
+        break;
+        }    
+      }
     }
-  
 
   // Loop through every source group.
   for(std::vector<cmSourceGroup>::const_iterator sg = sourceGroups.begin();