|  | @@ -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
 |