diff options
author | Brad King <brad.king@kitware.com> | 2019-04-01 17:37:02 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-04-02 18:23:32 (GMT) |
commit | 8ca1b262863d8a5cbb8306a52873101c2e940f78 (patch) | |
tree | c13cb9d3c3fd2927b89f37b3cd2895d4cb5bd09a | |
parent | 3e129d71bc12a325c0548aaaea24470cd172470b (diff) | |
download | CMake-8ca1b262863d8a5cbb8306a52873101c2e940f78.zip CMake-8ca1b262863d8a5cbb8306a52873101c2e940f78.tar.gz CMake-8ca1b262863d8a5cbb8306a52873101c2e940f78.tar.bz2 |
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.
-rw-r--r-- | Source/cmGlobalXCodeGenerator.cxx | 4 | ||||
-rw-r--r-- | Source/cmLocalGenerator.cxx | 13 |
2 files changed, 14 insertions, 3 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index af165f6..2fc6121 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1800,6 +1800,10 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, this->CurrentLocalGenerator->AddLanguageFlags(flags, gtgt, lang, configName); + if (gtgt->IsIPOEnabled(lang, configName)) { + this->CurrentLocalGenerator->AppendFeatureOptions(flags, lang, "IPO"); + } + // Add shared-library flags if needed. this->CurrentLocalGenerator->AddCMP0018Flags(flags, gtgt, lang, configName); diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 40b8e19..6337f07 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1258,6 +1258,10 @@ void cmLocalGenerator::GetTargetCompileFlags(cmGeneratorTarget* target, // Add language-specific flags. this->AddLanguageFlags(flags, target, lang, config); + if (target->IsIPOEnabled(lang, config)) { + this->AppendFeatureOptions(flags, lang, "IPO"); + } + this->AddArchitectureFlags(flags, target, lang, config); if (lang == "Fortran") { @@ -1515,9 +1519,8 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags, flagsVar += "_FLAGS"; this->AddConfigVariableFlags(flags, flagsVar, config); - if (target->IsIPOEnabled(lang, config)) { - this->AppendFeatureOptions(flags, lang, "IPO"); - } + // Placeholder for possible future per-target flags. + static_cast<void>(target); } void cmLocalGenerator::AddLanguageFlagsForLinking( @@ -1534,6 +1537,10 @@ void cmLocalGenerator::AddLanguageFlagsForLinking( } this->AddLanguageFlags(flags, target, lang, config); + + if (target->IsIPOEnabled(lang, config)) { + this->AppendFeatureOptions(flags, lang, "IPO"); + } } cmGeneratorTarget* cmLocalGenerator::FindGeneratorTargetToUse( |