mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-02 20:29:49 -05:00
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.
This commit is contained in:
@@ -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,
|
|||||||
// 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,
|
|||||||
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(
|
|||||||
}
|
}
|
||||||
|
|
||||||
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(
|
||||||
|
|||||||
Reference in New Issue
Block a user