Преглед изворни кода

Add support for comments on custom commands in visual studio 7

Andy Cedilnik пре 23 година
родитељ
комит
b0656a2605
2 измењених фајлова са 17 додато и 4 уклоњено
  1. 16 4
      Source/cmLocalVisualStudio7Generator.cxx
  2. 1 0
      Source/cmLocalVisualStudio7Generator.h

+ 16 - 4
Source/cmLocalVisualStudio7Generator.cxx

@@ -680,8 +680,10 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
           std::string totalCommandStr;
           totalCommandStr = this->CombineCommands(commands, totalCommand,
                                                   source.c_str());
+          const char* comment = totalCommand.m_Comment.c_str();
           this->WriteCustomRule(fout, source.c_str(), totalCommandStr.c_str(), 
-                                totalCommand.m_Depends, 
+                                (*comment?comment:"Custom Rule"),
+                                totalCommand.m_Depends,
                                 totalCommand.m_Outputs, compileFlags);
           }
         else if(compileFlags)
@@ -718,6 +720,7 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
 void cmLocalVisualStudio7Generator::WriteCustomRule(std::ostream& fout,
                                           const char* source,
                                           const char* command,
+                                          const char* comment,
                                           const std::set<std::string>& depends,
                                           const std::set<std::string>& outputs,
                                           const char* compileFlags)
@@ -740,6 +743,13 @@ void cmLocalVisualStudio7Generator::WriteCustomRule(std::ostream& fout,
       }
     fout << "\t\t\t\t\t<Tool\n"
          << "\t\t\t\t\tName=\"VCCustomBuildTool\"\n"
+         << "\t\t\t\t\tDescription=\"Building " << comment;
+    std::set<std::string>::const_iterator it;
+    for ( it = outputs.begin(); it != outputs.end(); it ++ )
+      {
+      fout << " " << *it;
+      }
+    fout << "\"\n"
          << "\t\t\t\t\tCommandLine=\"" << cmd << "\n\"\n"
          << "\t\t\t\t\tAdditionalDependencies=\"";
     // Write out the dependencies for the rule.
@@ -798,9 +808,10 @@ void cmLocalVisualStudio7Generator::WriteVCProjEndGroup(std::ostream& fout)
 
 
 std::string
-cmLocalVisualStudio7Generator::CombineCommands(const cmSourceGroup::Commands &commands,
-                                cmSourceGroup::CommandFiles &totalCommand,
-                                const char *source)
+cmLocalVisualStudio7Generator::CombineCommands(
+  const cmSourceGroup::Commands &commands,
+  cmSourceGroup::CommandFiles &totalCommand,
+  const char *source)
   
 {
   // Loop through every custom command generating code from the
@@ -818,6 +829,7 @@ cmLocalVisualStudio7Generator::CombineCommands(const cmSourceGroup::Commands &co
     totalCommandStr += c->second.m_Arguments;
     totalCommandStr += "\n";
     totalCommand.Merge(c->second);
+    totalCommand.m_Comment = c->second.m_Comment.c_str();
     }      
   // Create a dummy file with the name of the source if it does
   // not exist

+ 1 - 0
Source/cmLocalVisualStudio7Generator.h

@@ -111,6 +111,7 @@ private:
   void WriteCustomRule(std::ostream& fout,
                        const char* source,
                        const char* command,
+                       const char* comment,
                        const std::set<std::string>& depends,
                        const std::set<std::string>& outputs,
                        const char* extraFlags);