浏览代码

Ninja: Avoid duplicating /DEF: linker flag with MSVC tools

In commit 9a0d5a828a (Ninja: add /DEF: flag to linker call, 2012-03-10,
v2.8.8~22^2~7) the logic should have been added to `GetTargetFlags` in
place of the older logic in that method from commit 7cef36c628 (ENH: add
the ability to generate custom commands for a language that is not
supported by an IDE, 2004-10-21, v2.4.0~2655).

Fixes: #23570
Brad King 3 年之前
父节点
当前提交
6cc417586e
共有 2 个文件被更改,包括 2 次插入19 次删除
  1. 2 16
      Source/cmLocalGenerator.cxx
  2. 0 3
      Source/cmNinjaNormalTargetGenerator.cxx

+ 2 - 16
Source/cmLocalGenerator.cxx

@@ -1448,22 +1448,6 @@ void cmLocalGenerator::GetTargetFlags(
           sharedLibFlags += this->Makefile->GetSafeDefinition(build);
           sharedLibFlags += " ";
         }
-        if (this->Makefile->IsOn("WIN32") &&
-            !(this->Makefile->IsOn("CYGWIN") ||
-              this->Makefile->IsOn("MINGW"))) {
-          std::vector<cmSourceFile*> sources;
-          target->GetSourceFiles(sources, config);
-          std::string defFlag =
-            this->Makefile->GetSafeDefinition("CMAKE_LINK_DEF_FILE_FLAG");
-          for (cmSourceFile* sf : sources) {
-            if (sf->GetExtension() == "def") {
-              sharedLibFlags += defFlag;
-              sharedLibFlags +=
-                this->ConvertToOutputFormat(sf->ResolveFullPath(), SHELL);
-              sharedLibFlags += " ";
-            }
-          }
-        }
       }
 
       cmValue targetLinkFlags = target->GetProperty("LINK_FLAGS");
@@ -1577,6 +1561,8 @@ void cmLocalGenerator::GetTargetFlags(
   this->AppendPositionIndependentLinkerFlags(extraLinkFlags, target, config,
                                              linkLanguage);
   this->AppendIPOLinkerFlags(extraLinkFlags, target, config, linkLanguage);
+  this->AppendModuleDefinitionFlag(extraLinkFlags, target, linkLineComputer,
+                                   config);
 
   if (!extraLinkFlags.empty()) {
     linkFlags.emplace_back(std::move(extraLinkFlags));

+ 0 - 3
Source/cmNinjaNormalTargetGenerator.cxx

@@ -1164,9 +1164,6 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement(
 
   this->addPoolNinjaVariable("JOB_POOL_LINK", gt, vars);
 
-  localGen.AppendModuleDefinitionFlag(vars["LINK_FLAGS"], gt,
-                                      linkLineComputer.get(), config);
-
   this->UseLWYU = this->GetLocalGenerator()->AppendLWYUFlags(
     vars["LINK_FLAGS"], this->GetGeneratorTarget(),
     this->TargetLinkLanguage(config));