|  | @@ -971,17 +971,19 @@ bool cmQtAutoGenerators::MocParseSourceContent(
 | 
	
		
			
				|  |  |          const std::string headerToMoc =
 | 
	
		
			
				|  |  |            this->MocFindHeader(scannedFileAbsPath, incSubDir + incRealBasename);
 | 
	
		
			
				|  |  |          if (!headerToMoc.empty()) {
 | 
	
		
			
				|  |  | -          // Register moc job
 | 
	
		
			
				|  |  | -          mocsIncluded[headerToMoc] = incString;
 | 
	
		
			
				|  |  | -          this->MocFindDepends(headerToMoc, contentText, mocDepends);
 | 
	
		
			
				|  |  | -          // Store meta information for relaxed mode
 | 
	
		
			
				|  |  | -          if (relaxed && (incRealBasename == scannedFileBasename)) {
 | 
	
		
			
				|  |  | -            ownMocUnderscoreInclude = incString;
 | 
	
		
			
				|  |  | -            ownMocUnderscoreHeader = headerToMoc;
 | 
	
		
			
				|  |  | +          if (!this->MocSkip(headerToMoc)) {
 | 
	
		
			
				|  |  | +            // Register moc job
 | 
	
		
			
				|  |  | +            mocsIncluded[headerToMoc] = incString;
 | 
	
		
			
				|  |  | +            this->MocFindDepends(headerToMoc, contentText, mocDepends);
 | 
	
		
			
				|  |  | +            // Store meta information for relaxed mode
 | 
	
		
			
				|  |  | +            if (relaxed && (incRealBasename == scannedFileBasename)) {
 | 
	
		
			
				|  |  | +              ownMocUnderscoreInclude = incString;
 | 
	
		
			
				|  |  | +              ownMocUnderscoreHeader = headerToMoc;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |            std::ostringstream ost;
 | 
	
		
			
				|  |  | -          ost << "AutoMoc: Error: " << absFilename << "\n"
 | 
	
		
			
				|  |  | +          ost << "AutoMoc: Error: " << Quoted(absFilename) << "\n"
 | 
	
		
			
				|  |  |                << "The file includes the moc file " << Quoted(incString)
 | 
	
		
			
				|  |  |                << ", but could not find header "
 | 
	
		
			
				|  |  |                << Quoted(incRealBasename + "{" +
 | 
	
	
		
			
				|  | @@ -1003,36 +1005,39 @@ bool cmQtAutoGenerators::MocParseSourceContent(
 | 
	
		
			
				|  |  |              // In relaxed mode try to find a header instead but issue a warning
 | 
	
		
			
				|  |  |              const std::string headerToMoc =
 | 
	
		
			
				|  |  |                this->MocFindHeader(scannedFileAbsPath, incSubDir + incBasename);
 | 
	
		
			
				|  |  | -            if (!headerToMoc.empty() && !this->MocSkip(headerToMoc)) {
 | 
	
		
			
				|  |  | -              // This is for KDE4 compatibility:
 | 
	
		
			
				|  |  | -              fileToMoc = headerToMoc;
 | 
	
		
			
				|  |  | -              if (!requiresMoc && (incBasename == scannedFileBasename)) {
 | 
	
		
			
				|  |  | -                std::ostringstream ost;
 | 
	
		
			
				|  |  | -                ost << "AutoMoc: Warning: " << Quoted(absFilename) << "\n"
 | 
	
		
			
				|  |  | +            if (!headerToMoc.empty()) {
 | 
	
		
			
				|  |  | +              if (!this->MocSkip(headerToMoc)) {
 | 
	
		
			
				|  |  | +                // This is for KDE4 compatibility:
 | 
	
		
			
				|  |  | +                fileToMoc = headerToMoc;
 | 
	
		
			
				|  |  | +                if (!requiresMoc && (incBasename == scannedFileBasename)) {
 | 
	
		
			
				|  |  | +                  std::ostringstream ost;
 | 
	
		
			
				|  |  | +                  ost
 | 
	
		
			
				|  |  | +                    << "AutoMoc: Warning: " << Quoted(absFilename) << "\n"
 | 
	
		
			
				|  |  |                      << "The file includes the moc file " << Quoted(incString)
 | 
	
		
			
				|  |  |                      << ", but does not contain a Q_OBJECT or Q_GADGET macro.\n"
 | 
	
		
			
				|  |  |                      << "Running moc on " << Quoted(headerToMoc) << "!\n"
 | 
	
		
			
				|  |  |                      << "Include " << Quoted("moc_" + incBasename + ".cpp")
 | 
	
		
			
				|  |  |                      << " for a compatibility with strict mode (see "
 | 
	
		
			
				|  |  |                         "CMAKE_AUTOMOC_RELAXED_MODE).\n";
 | 
	
		
			
				|  |  | -                this->LogWarning(ost.str());
 | 
	
		
			
				|  |  | -              } else {
 | 
	
		
			
				|  |  | -                std::ostringstream ost;
 | 
	
		
			
				|  |  | -                ost << "AutoMoc: Warning: " << Quoted(absFilename) << "\n"
 | 
	
		
			
				|  |  | -                    << "The file includes the moc file " << Quoted(incString)
 | 
	
		
			
				|  |  | -                    << " instead of " << Quoted("moc_" + incBasename + ".cpp")
 | 
	
		
			
				|  |  | -                    << ".\n"
 | 
	
		
			
				|  |  | -                    << "Running moc on " << Quoted(headerToMoc) << "!\n"
 | 
	
		
			
				|  |  | -                    << "Include " << Quoted("moc_" + incBasename + ".cpp")
 | 
	
		
			
				|  |  | -                    << " for compatibility with strict mode (see "
 | 
	
		
			
				|  |  | -                       "CMAKE_AUTOMOC_RELAXED_MODE).\n";
 | 
	
		
			
				|  |  | -                this->LogWarning(ost.str());
 | 
	
		
			
				|  |  | +                  this->LogWarning(ost.str());
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                  std::ostringstream ost;
 | 
	
		
			
				|  |  | +                  ost << "AutoMoc: Warning: " << Quoted(absFilename) << "\n"
 | 
	
		
			
				|  |  | +                      << "The file includes the moc file " << Quoted(incString)
 | 
	
		
			
				|  |  | +                      << " instead of "
 | 
	
		
			
				|  |  | +                      << Quoted("moc_" + incBasename + ".cpp") << ".\n"
 | 
	
		
			
				|  |  | +                      << "Running moc on " << Quoted(headerToMoc) << "!\n"
 | 
	
		
			
				|  |  | +                      << "Include " << Quoted("moc_" + incBasename + ".cpp")
 | 
	
		
			
				|  |  | +                      << " for compatibility with strict mode (see "
 | 
	
		
			
				|  |  | +                         "CMAKE_AUTOMOC_RELAXED_MODE).\n";
 | 
	
		
			
				|  |  | +                  this->LogWarning(ost.str());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |                }
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                std::ostringstream ost;
 | 
	
		
			
				|  |  |                ost << "AutoMoc: Error: " << Quoted(absFilename) << "\n"
 | 
	
		
			
				|  |  |                    << "The file includes the moc file " << Quoted(incString)
 | 
	
		
			
				|  |  | -                  << ". which seems to be the moc file from a different "
 | 
	
		
			
				|  |  | +                  << ", which seems to be the moc file from a different "
 | 
	
		
			
				|  |  |                       "source file. CMake also could not find a matching "
 | 
	
		
			
				|  |  |                       "header.";
 | 
	
		
			
				|  |  |                this->LogError(ost.str());
 | 
	
	
		
			
				|  | @@ -1048,7 +1053,7 @@ bool cmQtAutoGenerators::MocParseSourceContent(
 | 
	
		
			
				|  |  |              // Accept but issue a warning if moc isn't required
 | 
	
		
			
				|  |  |              if (!requiresMoc) {
 | 
	
		
			
				|  |  |                std::ostringstream ost;
 | 
	
		
			
				|  |  | -              ost << "AutoMoc: Error: " << Quoted(absFilename) << "\n"
 | 
	
		
			
				|  |  | +              ost << "AutoMoc: Warning: " << Quoted(absFilename) << "\n"
 | 
	
		
			
				|  |  |                    << "The file includes the moc file " << Quoted(incString)
 | 
	
		
			
				|  |  |                    << ", but does not contain a Q_OBJECT or Q_GADGET "
 | 
	
		
			
				|  |  |                       "macro.";
 |