Browse Source

Merge topic 'support_CMAKE_VFS_OVERLAY_for_rc_compilation'

18ee6d7e32 llvm-rc: Add CMAKE_VFS_OVERLAY to the preprocessing flags

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5604
Brad King 4 years ago
parent
commit
3fb889a0e6
1 changed files with 16 additions and 4 deletions
  1. 16 4
      Source/cmLocalGenerator.cxx

+ 16 - 4
Source/cmLocalGenerator.cxx

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