mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-16 20:21:41 -06:00
Ninja: Fix LINK_WHAT_YOU_USE link flag placement
Move `-Wl,--no-as-needed` from the `<FLAGS>` placeholder to `<LINK_FLAGS>`, as it is in the Makefile generators. Fixes: #22342
This commit is contained in:
committed by
Brad King
parent
4a0e68266b
commit
d7159f9591
@@ -1156,16 +1156,15 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement(
|
||||
|
||||
this->AddModuleDefinitionFlag(linkLineComputer.get(), vars["LINK_FLAGS"],
|
||||
config);
|
||||
if (gt->GetPropertyAsBool("LINK_WHAT_YOU_USE")) {
|
||||
vars["LINK_FLAGS"] += " -Wl,--no-as-needed";
|
||||
}
|
||||
vars["LINK_FLAGS"] = globalGen->EncodeLiteral(vars["LINK_FLAGS"]);
|
||||
|
||||
vars["MANIFESTS"] = this->GetManifests(config);
|
||||
vars["AIX_EXPORTS"] = this->GetAIXExports(config);
|
||||
|
||||
vars["LINK_PATH"] = frameworkPath + linkPath;
|
||||
std::string lwyuFlags;
|
||||
if (gt->GetPropertyAsBool("LINK_WHAT_YOU_USE")) {
|
||||
lwyuFlags = " -Wl,--no-as-needed";
|
||||
}
|
||||
|
||||
// Compute architecture specific link flags. Yes, these go into a different
|
||||
// variable for executables, probably due to a mistake made when duplicating
|
||||
@@ -1174,7 +1173,6 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement(
|
||||
std::string t = vars["FLAGS"];
|
||||
localGen.AddArchitectureFlags(t, gt, this->TargetLinkLanguage(config),
|
||||
config);
|
||||
t += lwyuFlags;
|
||||
vars["FLAGS"] = t;
|
||||
} else {
|
||||
std::string t = vars["ARCH_FLAGS"];
|
||||
@@ -1182,7 +1180,6 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement(
|
||||
config);
|
||||
vars["ARCH_FLAGS"] = t;
|
||||
t.clear();
|
||||
t += lwyuFlags;
|
||||
localGen.AddLanguageFlagsForLinking(
|
||||
t, gt, this->TargetLinkLanguage(config), config);
|
||||
vars["LANGUAGE_COMPILE_FLAGS"] = t;
|
||||
|
||||
Reference in New Issue
Block a user