Преглед на файлове

Merge topic 'vfort-object-linker-lang'

2c9f3578 VS: Decide project type by linker lang as fallback

Acked-by: Kitware Robot <[email protected]>
Merge-request: !643
Brad King преди 8 години
родител
ревизия
4a553ecb8e
променени са 1 файла, в които са добавени 14 реда и са изтрити 0 реда
  1. 14 0
      Source/cmGlobalVisualStudioGenerator.cxx

+ 14 - 0
Source/cmGlobalVisualStudioGenerator.cxx

@@ -729,12 +729,26 @@ bool cmGlobalVisualStudioGenerator::TargetIsFortranOnly(
       return false;
     }
   }
+  // If there's only one source language, Fortran has to be used
+  // in order for the sources to compile.
+  // Note: Via linker propagation, LINKER_LANGUAGE could become CXX in
+  // this situation and mismatch from the actual language of the linker.
   gt->GetLanguages(languages, "");
   if (languages.size() == 1) {
     if (*languages.begin() == "Fortran") {
       return true;
     }
   }
+
+  // In the case of mixed object files or sources mixed with objects,
+  // decide the language based on the value of LINKER_LANGUAGE.
+  // This will not make it possible to mix source files of different
+  // languages, but object libraries will be linked together in the
+  // same fashion as other generators do.
+  if (gt->GetLinkerLanguage("") == "Fortran") {
+    return true;
+  }
+
   return false;
 }