From 6cc417586ed0e3f86d0cde88bcdcae32cb7a0ea5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 31 May 2022 15:20:52 -0400 Subject: 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 --- Source/cmLocalGenerator.cxx | 18 ++---------------- Source/cmNinjaNormalTargetGenerator.cxx | 3 --- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 15563fe..7928a46 100644 --- a/Source/cmLocalGenerator.cxx +++ b/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 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)); diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 3426de9..d4f1608 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/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)); -- cgit v0.12