|  | @@ -549,32 +549,19 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
 | 
	
		
			
				|  |  |    this->ParseHeaders(headerFiles, includedMocs, notIncludedMocs, includedUis);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if (!this->MocExecutable.empty()) {
 | 
	
		
			
				|  |  | -    this->GenerateMocFiles(includedMocs, notIncludedMocs);
 | 
	
		
			
				|  |  | +    if (!this->GenerateMocFiles(includedMocs, notIncludedMocs)) {
 | 
	
		
			
				|  |  | +      return false;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    if (!this->UicExecutable.empty()) {
 | 
	
		
			
				|  |  | -    this->GenerateUiFiles(includedUis);
 | 
	
		
			
				|  |  | +    if (!this->GenerateUiFiles(includedUis)) {
 | 
	
		
			
				|  |  | +      return false;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    if (!this->RccExecutable.empty()) {
 | 
	
		
			
				|  |  | -    this->GenerateQrcFiles();
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  if (this->RunMocFailed) {
 | 
	
		
			
				|  |  | -    std::ostringstream err;
 | 
	
		
			
				|  |  | -    err << "moc failed..." << std::endl;
 | 
	
		
			
				|  |  | -    this->LogError(err.str());
 | 
	
		
			
				|  |  | -    return false;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -  if (this->RunUicFailed) {
 | 
	
		
			
				|  |  | -    std::ostringstream err;
 | 
	
		
			
				|  |  | -    err << "uic failed..." << std::endl;
 | 
	
		
			
				|  |  | -    this->LogError(err.str());
 | 
	
		
			
				|  |  | -    return false;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -  if (this->RunRccFailed) {
 | 
	
		
			
				|  |  | -    std::ostringstream err;
 | 
	
		
			
				|  |  | -    err << "rcc failed..." << std::endl;
 | 
	
		
			
				|  |  | -    this->LogError(err.str());
 | 
	
		
			
				|  |  | -    return false;
 | 
	
		
			
				|  |  | +    if (!this->GenerateQrcFiles()) {
 | 
	
		
			
				|  |  | +      return false;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    return true;
 | 
	
	
		
			
				|  | @@ -1011,7 +998,7 @@ bool cmQtAutoGenerators::GenerateMocFiles(
 | 
	
		
			
				|  |  |            << "- rename the source files or" << std::endl
 | 
	
		
			
				|  |  |            << "- do not include the (moc_NAME.cpp|NAME.moc) file" << std::endl;
 | 
	
		
			
				|  |  |        this->NameCollisionLog(err.str(), collisions);
 | 
	
		
			
				|  |  | -      ::exit(EXIT_FAILURE);
 | 
	
		
			
				|  |  | +      return false;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1092,6 +1079,9 @@ bool cmQtAutoGenerators::GenerateMocFiles(
 | 
	
		
			
				|  |  |    return true;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * @return True if a moc file was created. False may indicate an error.
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  |  bool cmQtAutoGenerators::GenerateMoc(const std::string& sourceFile,
 | 
	
		
			
				|  |  |                                       const std::string& mocFileName)
 | 
	
		
			
				|  |  |  {
 | 
	
	
		
			
				|  | @@ -1136,12 +1126,16 @@ bool cmQtAutoGenerators::GenerateMoc(const std::string& sourceFile,
 | 
	
		
			
				|  |  |      bool result =
 | 
	
		
			
				|  |  |        cmSystemTools::RunSingleCommand(command, &output, &output, &retVal);
 | 
	
		
			
				|  |  |      if (!result || retVal) {
 | 
	
		
			
				|  |  | -      std::ostringstream err;
 | 
	
		
			
				|  |  | -      err << "AUTOGEN: error: process for " << mocFilePath << " failed:\n"
 | 
	
		
			
				|  |  | -          << output << std::endl;
 | 
	
		
			
				|  |  | -      this->LogError(err.str());
 | 
	
		
			
				|  |  | -      this->RunMocFailed = true;
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        std::ostringstream err;
 | 
	
		
			
				|  |  | +        err << "AUTOGEN: error: moc process for " << mocFilePath
 | 
	
		
			
				|  |  | +            << " failed:\n"
 | 
	
		
			
				|  |  | +            << output << std::endl;
 | 
	
		
			
				|  |  | +        this->LogError(err.str());
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        cmSystemTools::RemoveFile(mocFilePath);
 | 
	
		
			
				|  |  | +      this->RunMocFailed = true;
 | 
	
		
			
				|  |  | +      return false;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      return true;
 | 
	
		
			
				|  |  |    }
 | 
	
	
		
			
				|  | @@ -1183,7 +1177,7 @@ bool cmQtAutoGenerators::GenerateUiFiles(
 | 
	
		
			
				|  |  |            << std::endl
 | 
	
		
			
				|  |  |            << "To avoid this error rename the source files." << std::endl;
 | 
	
		
			
				|  |  |        this->NameCollisionLog(err.str(), collisions);
 | 
	
		
			
				|  |  | -      ::exit(EXIT_FAILURE);
 | 
	
		
			
				|  |  | +      return false;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    testMap.clear();
 | 
	
	
		
			
				|  | @@ -1207,6 +1201,9 @@ bool cmQtAutoGenerators::GenerateUiFiles(
 | 
	
		
			
				|  |  |    return true;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * @return True if a uic file was created. False may indicate an error.
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  |  bool cmQtAutoGenerators::GenerateUi(const std::string& realName,
 | 
	
		
			
				|  |  |                                      const std::string& uiInputFile,
 | 
	
		
			
				|  |  |                                      const std::string& uiOutputFile)
 | 
	
	
		
			
				|  | @@ -1253,13 +1250,15 @@ bool cmQtAutoGenerators::GenerateUi(const std::string& realName,
 | 
	
		
			
				|  |  |      bool result =
 | 
	
		
			
				|  |  |        cmSystemTools::RunSingleCommand(command, &output, &output, &retVal);
 | 
	
		
			
				|  |  |      if (!result || retVal) {
 | 
	
		
			
				|  |  | -      std::ostringstream err;
 | 
	
		
			
				|  |  | -      err << "AUTOUIC: error: process for " << uiOutputFile
 | 
	
		
			
				|  |  | -          << " needed by\n \"" << realName << "\"\nfailed:\n"
 | 
	
		
			
				|  |  | -          << output << std::endl;
 | 
	
		
			
				|  |  | -      this->LogError(err.str());
 | 
	
		
			
				|  |  | -      this->RunUicFailed = true;
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        std::ostringstream err;
 | 
	
		
			
				|  |  | +        err << "AUTOUIC: error: uic process for " << uiOutputFile
 | 
	
		
			
				|  |  | +            << " needed by\n \"" << realName << "\"\nfailed:\n"
 | 
	
		
			
				|  |  | +            << output << std::endl;
 | 
	
		
			
				|  |  | +        this->LogError(err.str());
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        cmSystemTools::RemoveFile(uiOutputFile);
 | 
	
		
			
				|  |  | +      this->RunUicFailed = true;
 | 
	
		
			
				|  |  |        return false;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      return true;
 | 
	
	
		
			
				|  | @@ -1312,7 +1311,7 @@ bool cmQtAutoGenerators::GenerateQrcFiles()
 | 
	
		
			
				|  |  |            << std::endl
 | 
	
		
			
				|  |  |            << "To avoid this error rename the source .qrc files." << std::endl;
 | 
	
		
			
				|  |  |        this->NameCollisionLog(err.str(), collisions);
 | 
	
		
			
				|  |  | -      ::exit(EXIT_FAILURE);
 | 
	
		
			
				|  |  | +      return false;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1330,6 +1329,9 @@ bool cmQtAutoGenerators::GenerateQrcFiles()
 | 
	
		
			
				|  |  |    return true;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * @return True if a rcc file was created. False may indicate an error.
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  |  bool cmQtAutoGenerators::GenerateQrc(const std::string& qrcInputFile,
 | 
	
		
			
				|  |  |                                       const std::string& qrcOutputFile,
 | 
	
		
			
				|  |  |                                       bool unique_n)
 | 
	
	
		
			
				|  | @@ -1387,16 +1389,20 @@ bool cmQtAutoGenerators::GenerateQrc(const std::string& qrcInputFile,
 | 
	
		
			
				|  |  |      bool result =
 | 
	
		
			
				|  |  |        cmSystemTools::RunSingleCommand(command, &output, &output, &retVal);
 | 
	
		
			
				|  |  |      if (!result || retVal) {
 | 
	
		
			
				|  |  | -      std::ostringstream err;
 | 
	
		
			
				|  |  | -      err << "AUTORCC: error: process for " << qrcOutputFile << " failed:\n"
 | 
	
		
			
				|  |  | -          << output << std::endl;
 | 
	
		
			
				|  |  | -      this->LogError(err.str());
 | 
	
		
			
				|  |  | -      this->RunRccFailed = true;
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +        std::ostringstream err;
 | 
	
		
			
				|  |  | +        err << "AUTORCC: error: rcc process for " << qrcOutputFile
 | 
	
		
			
				|  |  | +            << " failed:\n"
 | 
	
		
			
				|  |  | +            << output << std::endl;
 | 
	
		
			
				|  |  | +        this->LogError(err.str());
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        cmSystemTools::RemoveFile(qrcBuildFile);
 | 
	
		
			
				|  |  | +      this->RunRccFailed = true;
 | 
	
		
			
				|  |  |        return false;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    return true;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  return true;
 | 
	
		
			
				|  |  | +  return false;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 |