Commit 8ca1b262 authored by Brad King's avatar Brad King
Browse files

cmLocalGenerator: Factor IPO logic out of AddLanguageFlags

The IPO flag logic was added to `AddLanguageFlags` based on my advice.
However, this method should really only be about `CMAKE_<LANG>_FLAGS*`
variables.  Move the IPO logic out to its call sites.
parent 3e129d71
...@@ -1800,6 +1800,10 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, ...@@ -1800,6 +1800,10 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt,
this->CurrentLocalGenerator->AddLanguageFlags(flags, gtgt, lang, this->CurrentLocalGenerator->AddLanguageFlags(flags, gtgt, lang,
configName); configName);
if (gtgt->IsIPOEnabled(lang, configName)) {
this->CurrentLocalGenerator->AppendFeatureOptions(flags, lang, "IPO");
}
// Add shared-library flags if needed. // Add shared-library flags if needed.
this->CurrentLocalGenerator->AddCMP0018Flags(flags, gtgt, lang, this->CurrentLocalGenerator->AddCMP0018Flags(flags, gtgt, lang,
configName); configName);
......
...@@ -1258,6 +1258,10 @@ void cmLocalGenerator::GetTargetCompileFlags(cmGeneratorTarget* target, ...@@ -1258,6 +1258,10 @@ void cmLocalGenerator::GetTargetCompileFlags(cmGeneratorTarget* target,
// Add language-specific flags. // Add language-specific flags.
this->AddLanguageFlags(flags, target, lang, config); this->AddLanguageFlags(flags, target, lang, config);
if (target->IsIPOEnabled(lang, config)) {
this->AppendFeatureOptions(flags, lang, "IPO");
}
this->AddArchitectureFlags(flags, target, lang, config); this->AddArchitectureFlags(flags, target, lang, config);
if (lang == "Fortran") { if (lang == "Fortran") {
...@@ -1515,9 +1519,8 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags, ...@@ -1515,9 +1519,8 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags,
flagsVar += "_FLAGS"; flagsVar += "_FLAGS";
this->AddConfigVariableFlags(flags, flagsVar, config); this->AddConfigVariableFlags(flags, flagsVar, config);
if (target->IsIPOEnabled(lang, config)) { // Placeholder for possible future per-target flags.
this->AppendFeatureOptions(flags, lang, "IPO"); static_cast<void>(target);
}
} }
void cmLocalGenerator::AddLanguageFlagsForLinking( void cmLocalGenerator::AddLanguageFlagsForLinking(
...@@ -1534,6 +1537,10 @@ void cmLocalGenerator::AddLanguageFlagsForLinking( ...@@ -1534,6 +1537,10 @@ void cmLocalGenerator::AddLanguageFlagsForLinking(
} }
this->AddLanguageFlags(flags, target, lang, config); this->AddLanguageFlags(flags, target, lang, config);
if (target->IsIPOEnabled(lang, config)) {
this->AppendFeatureOptions(flags, lang, "IPO");
}
} }
cmGeneratorTarget* cmLocalGenerator::FindGeneratorTargetToUse( cmGeneratorTarget* cmLocalGenerator::FindGeneratorTargetToUse(
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment