Honor LINK_WHAT_YOU_USE when set to OFF
Explicitly setting variable CMAKE_LINK_WHAT_YOU_USE or property LINK_WHAT_YOU_USE to OFF should not cause LWYU to run. Fix the property lookup to use GetPropertyAsBool.
This commit is contained in:
parent
b99bbfe88d
commit
933e54d3cc
|
@ -192,7 +192,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
|
||||||
this->LocalGenerator->AppendFlags(
|
this->LocalGenerator->AppendFlags(
|
||||||
linkFlags, this->Makefile->GetDefinition(export_flag_var));
|
linkFlags, this->Makefile->GetDefinition(export_flag_var));
|
||||||
}
|
}
|
||||||
if (this->GeneratorTarget->GetProperty("LINK_WHAT_YOU_USE")) {
|
if (this->GeneratorTarget->GetPropertyAsBool("LINK_WHAT_YOU_USE")) {
|
||||||
this->LocalGenerator->AppendFlags(linkFlags, " -Wl,--no-as-needed");
|
this->LocalGenerator->AppendFlags(linkFlags, " -Wl,--no-as-needed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -354,7 +354,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
|
||||||
vars.LinkFlags = linkFlags.c_str();
|
vars.LinkFlags = linkFlags.c_str();
|
||||||
vars.Manifests = manifests.c_str();
|
vars.Manifests = manifests.c_str();
|
||||||
|
|
||||||
if (this->GeneratorTarget->GetProperty("LINK_WHAT_YOU_USE")) {
|
if (this->GeneratorTarget->GetPropertyAsBool("LINK_WHAT_YOU_USE")) {
|
||||||
std::string cmakeCommand = this->LocalGenerator->ConvertToOutputFormat(
|
std::string cmakeCommand = this->LocalGenerator->ConvertToOutputFormat(
|
||||||
cmSystemTools::GetCMakeCommand(), cmLocalGenerator::SHELL);
|
cmSystemTools::GetCMakeCommand(), cmLocalGenerator::SHELL);
|
||||||
cmakeCommand += " -E __run_iwyu --lwyu=";
|
cmakeCommand += " -E __run_iwyu --lwyu=";
|
||||||
|
|
|
@ -161,7 +161,7 @@ void cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules(bool relink)
|
||||||
extraFlags, "CMAKE_SHARED_LINKER_FLAGS", this->ConfigName);
|
extraFlags, "CMAKE_SHARED_LINKER_FLAGS", this->ConfigName);
|
||||||
this->AddModuleDefinitionFlag(extraFlags);
|
this->AddModuleDefinitionFlag(extraFlags);
|
||||||
|
|
||||||
if (this->GeneratorTarget->GetProperty("LINK_WHAT_YOU_USE")) {
|
if (this->GeneratorTarget->GetPropertyAsBool("LINK_WHAT_YOU_USE")) {
|
||||||
this->LocalGenerator->AppendFlags(extraFlags, " -Wl,--no-as-needed");
|
this->LocalGenerator->AppendFlags(extraFlags, " -Wl,--no-as-needed");
|
||||||
}
|
}
|
||||||
this->WriteLibraryRules(linkRuleVar, extraFlags, relink);
|
this->WriteLibraryRules(linkRuleVar, extraFlags, relink);
|
||||||
|
@ -638,7 +638,7 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules(
|
||||||
// Get the set of commands.
|
// Get the set of commands.
|
||||||
std::string linkRule = this->GetLinkRule(linkRuleVar);
|
std::string linkRule = this->GetLinkRule(linkRuleVar);
|
||||||
cmSystemTools::ExpandListArgument(linkRule, real_link_commands);
|
cmSystemTools::ExpandListArgument(linkRule, real_link_commands);
|
||||||
if (this->GeneratorTarget->GetProperty("LINK_WHAT_YOU_USE") &&
|
if (this->GeneratorTarget->GetPropertyAsBool("LINK_WHAT_YOU_USE") &&
|
||||||
(this->GeneratorTarget->GetType() == cmState::SHARED_LIBRARY)) {
|
(this->GeneratorTarget->GetType() == cmState::SHARED_LIBRARY)) {
|
||||||
std::string cmakeCommand = this->LocalGenerator->ConvertToOutputFormat(
|
std::string cmakeCommand = this->LocalGenerator->ConvertToOutputFormat(
|
||||||
cmSystemTools::GetCMakeCommand(), cmLocalGenerator::SHELL);
|
cmSystemTools::GetCMakeCommand(), cmLocalGenerator::SHELL);
|
||||||
|
|
|
@ -315,7 +315,7 @@ std::vector<std::string> cmNinjaNormalTargetGenerator::ComputeLinkCmd()
|
||||||
const char* linkCmd = mf->GetDefinition(linkCmdVar);
|
const char* linkCmd = mf->GetDefinition(linkCmdVar);
|
||||||
if (linkCmd) {
|
if (linkCmd) {
|
||||||
cmSystemTools::ExpandListArgument(linkCmd, linkCmds);
|
cmSystemTools::ExpandListArgument(linkCmd, linkCmds);
|
||||||
if (this->GetGeneratorTarget()->GetProperty("LINK_WHAT_YOU_USE")) {
|
if (this->GetGeneratorTarget()->GetPropertyAsBool("LINK_WHAT_YOU_USE")) {
|
||||||
std::string cmakeCommand =
|
std::string cmakeCommand =
|
||||||
this->GetLocalGenerator()->ConvertToOutputFormat(
|
this->GetLocalGenerator()->ConvertToOutputFormat(
|
||||||
cmSystemTools::GetCMakeCommand(), cmLocalGenerator::SHELL);
|
cmSystemTools::GetCMakeCommand(), cmLocalGenerator::SHELL);
|
||||||
|
@ -505,7 +505,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
|
||||||
|
|
||||||
vars["LINK_PATH"] = frameworkPath + linkPath;
|
vars["LINK_PATH"] = frameworkPath + linkPath;
|
||||||
std::string lwyuFlags;
|
std::string lwyuFlags;
|
||||||
if (genTarget.GetProperty("LINK_WHAT_YOU_USE")) {
|
if (genTarget.GetPropertyAsBool("LINK_WHAT_YOU_USE")) {
|
||||||
lwyuFlags = " -Wl,--no-as-needed";
|
lwyuFlags = " -Wl,--no-as-needed";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue