|  | @@ -547,6 +547,18 @@ void cmGlobalNinjaGenerator
 | 
											
												
													
														|  |  //   Source/cmake.cxx
 |  |  //   Source/cmake.cxx
 | 
											
												
													
														|  |  void cmGlobalNinjaGenerator::Generate()
 |  |  void cmGlobalNinjaGenerator::Generate()
 | 
											
												
													
														|  |  {
 |  |  {
 | 
											
												
													
														|  | 
 |  | +  // Check minimum Ninja version.
 | 
											
												
													
														|  | 
 |  | +  if (cmSystemTools::VersionCompare(cmSystemTools::OP_LESS,
 | 
											
												
													
														|  | 
 |  | +                                    CurrentNinjaVersion().c_str(),
 | 
											
												
													
														|  | 
 |  | +                                    RequiredNinjaVersion().c_str()))
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +    std::ostringstream msg;
 | 
											
												
													
														|  | 
 |  | +    msg << "The detected version of Ninja (" << this->CurrentNinjaVersion();
 | 
											
												
													
														|  | 
 |  | +    msg << ") is less than the version of Ninja required by CMake (";
 | 
											
												
													
														|  | 
 |  | +    msg << this->RequiredNinjaVersion() << ").";
 | 
											
												
													
														|  | 
 |  | +    this->GetCMakeInstance()->IssueMessage(cmake::FATAL_ERROR, msg.str());
 | 
											
												
													
														|  | 
 |  | +    return;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |    this->OpenBuildFileStream();
 |  |    this->OpenBuildFileStream();
 | 
											
												
													
														|  |    this->OpenRulesFileStream();
 |  |    this->OpenRulesFileStream();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -1256,7 +1268,7 @@ std::string cmGlobalNinjaGenerator::ninjaCmd() const
 | 
											
												
													
														|  |    return "ninja";
 |  |    return "ninja";
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -std::string cmGlobalNinjaGenerator::ninjaVersion() const
 |  | 
 | 
											
												
													
														|  | 
 |  | +std::string cmGlobalNinjaGenerator::CurrentNinjaVersion() const
 | 
											
												
													
														|  |  {
 |  |  {
 | 
											
												
													
														|  |    std::string version;
 |  |    std::string version;
 | 
											
												
													
														|  |    std::string command = ninjaCmd() + " --version";
 |  |    std::string command = ninjaCmd() + " --version";
 | 
											
										
											
												
													
														|  | @@ -1264,13 +1276,14 @@ std::string cmGlobalNinjaGenerator::ninjaVersion() const
 | 
											
												
													
														|  |                                    &version, 0, 0, 0,
 |  |                                    &version, 0, 0, 0,
 | 
											
												
													
														|  |                                    cmSystemTools::OUTPUT_NONE);
 |  |                                    cmSystemTools::OUTPUT_NONE);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -  return version;
 |  | 
 | 
											
												
													
														|  | 
 |  | +  return cmSystemTools::TrimWhitespace(version);
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  bool cmGlobalNinjaGenerator::SupportsConsolePool() const
 |  |  bool cmGlobalNinjaGenerator::SupportsConsolePool() const
 | 
											
												
													
														|  |  {
 |  |  {
 | 
											
												
													
														|  |    return cmSystemTools::VersionCompare(cmSystemTools::OP_LESS,
 |  |    return cmSystemTools::VersionCompare(cmSystemTools::OP_LESS,
 | 
											
												
													
														|  | -                                       ninjaVersion().c_str(), "1.5") == false;
 |  | 
 | 
											
												
													
														|  | 
 |  | +    CurrentNinjaVersion().c_str(),
 | 
											
												
													
														|  | 
 |  | +    RequiredNinjaVersionForConsolePool().c_str()) == false;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  void cmGlobalNinjaGenerator::WriteTargetClean(std::ostream& os)
 |  |  void cmGlobalNinjaGenerator::WriteTargetClean(std::ostream& os)
 |