浏览代码

VS: Fix OBJECT library support in Intel Fortran projects

The `TargetExt` for `.vfproj` object libraries should be `.lib`
to match the `OutputFile` value.  Otherwise Visual Fortran raises
warnings:

    TargetPath(...) does not match the Library's OutputFile
    property value (...)
Christian Pfeiffer 8 年之前
父节点
当前提交
7a411dfbf6
共有 1 个文件被更改,包括 6 次插入4 次删除
  1. 6 4
      Source/cmLocalVisualStudio7Generator.cxx

+ 6 - 4
Source/cmLocalVisualStudio7Generator.cxx

@@ -746,11 +746,13 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(
 
   if (this->FortranProject) {
     // Intel Fortran >= 15.0 uses TargetName property.
-    std::string targetNameFull = target->GetFullName(configName);
-    std::string targetName =
+    std::string const targetNameFull = target->GetFullName(configName);
+    std::string const targetName =
       cmSystemTools::GetFilenameWithoutLastExtension(targetNameFull);
-    std::string targetExt =
-      cmSystemTools::GetFilenameLastExtension(targetNameFull);
+    std::string const targetExt =
+      target->GetType() == cmStateEnums::OBJECT_LIBRARY
+      ? ".lib"
+      : cmSystemTools::GetFilenameLastExtension(targetNameFull);
     /* clang-format off */
     fout <<
       "\t\t\tTargetName=\"" << this->EscapeForXML(targetName) << "\"\n"