diff options
author | Brad King <brad.king@kitware.com> | 2022-05-31 19:20:52 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-05-31 19:40:58 (GMT) |
commit | 6cc417586ed0e3f86d0cde88bcdcae32cb7a0ea5 (patch) | |
tree | 0514c35c967accae92faa9a300d4b69671bb0ab3 | |
parent | 39dba8a2449e3f866088b13faf3d6cbf60852751 (diff) | |
download | CMake-6cc417586ed0e3f86d0cde88bcdcae32cb7a0ea5.zip CMake-6cc417586ed0e3f86d0cde88bcdcae32cb7a0ea5.tar.gz CMake-6cc417586ed0e3f86d0cde88bcdcae32cb7a0ea5.tar.bz2 |
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
-rw-r--r-- | Source/cmLocalGenerator.cxx | 18 | ||||
-rw-r--r-- | 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<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)); 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)); |