|  | @@ -1940,9 +1940,11 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags,
 | 
	
		
			
				|  |  |    this->AddConfigVariableFlags(flags, cmStrCat("CMAKE_", lang, "_FLAGS"),
 | 
	
		
			
				|  |  |                                 config);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  std::string const& compiler = this->Makefile->GetSafeDefinition(
 | 
	
		
			
				|  |  | +  std::string compiler = this->Makefile->GetSafeDefinition(
 | 
	
		
			
				|  |  |      cmStrCat("CMAKE_", lang, "_COMPILER_ID"));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  std::string compilerSimulateId = this->Makefile->GetSafeDefinition(
 | 
	
		
			
				|  |  | +    cmStrCat("CMAKE_", lang, "_SIMULATE_ID"));
 | 
	
		
			
				|  |  |    if (lang == "Swift") {
 | 
	
		
			
				|  |  |      if (cmProp v = target->GetProperty("Swift_LANGUAGE_VERSION")) {
 | 
	
		
			
				|  |  |        if (cmSystemTools::VersionCompare(cmSystemTools::OP_GREATER_EQUAL,
 | 
	
	
		
			
				|  | @@ -1957,14 +1959,24 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags,
 | 
	
		
			
				|  |  |      target->AddCUDAToolkitFlags(flags);
 | 
	
		
			
				|  |  |    } else if (lang == "ISPC") {
 | 
	
		
			
				|  |  |      target->AddISPCTargetFlags(flags);
 | 
	
		
			
				|  |  | +  } else if (lang == "RC" &&
 | 
	
		
			
				|  |  | +             this->Makefile->GetSafeDefinition("CMAKE_RC_COMPILER")
 | 
	
		
			
				|  |  | +                 .find("llvm-rc") != std::string::npos) {
 | 
	
		
			
				|  |  | +    compiler = this->Makefile->GetSafeDefinition("CMAKE_C_COMPILER_ID");
 | 
	
		
			
				|  |  | +    if (!compiler.empty()) {
 | 
	
		
			
				|  |  | +      compilerSimulateId =
 | 
	
		
			
				|  |  | +        this->Makefile->GetSafeDefinition("CMAKE_C_SIMULATE_ID");
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      compiler = this->Makefile->GetSafeDefinition("CMAKE_CXX_COMPILER_ID");
 | 
	
		
			
				|  |  | +      compilerSimulateId =
 | 
	
		
			
				|  |  | +        this->Makefile->GetSafeDefinition("CMAKE_CXX_SIMULATE_ID");
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    // Add VFS Overlay for Clang compiliers
 | 
	
		
			
				|  |  |    if (compiler == "Clang") {
 | 
	
		
			
				|  |  |      if (cmProp vfsOverlay =
 | 
	
		
			
				|  |  |            this->Makefile->GetDefinition("CMAKE_CLANG_VFS_OVERLAY")) {
 | 
	
		
			
				|  |  | -      std::string const& compilerSimulateId =
 | 
	
		
			
				|  |  | -        this->Makefile->GetSafeDefinition(
 | 
	
		
			
				|  |  | -          cmStrCat("CMAKE_", lang, "_SIMULATE_ID"));
 | 
	
		
			
				|  |  |        if (compilerSimulateId == "MSVC") {
 | 
	
		
			
				|  |  |          this->AppendCompileOptions(
 | 
	
		
			
				|  |  |            flags,
 |