mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00
Add IPO compiler flags more consistently in generators
Move addition of IPO flags into `cmLocalGenerator::AddLanguageFlags` because all call sites of that need the IPO flags, but not all were following the call with `AppendFeatureOptions`.
This commit is contained in:
@@ -47,11 +47,8 @@ void cmCommonTargetGenerator::AddFeatureFlags(std::string& flags,
|
||||
const std::string& lang)
|
||||
{
|
||||
// Add language-specific flags.
|
||||
this->LocalGenerator->AddLanguageFlags(flags, lang, this->ConfigName);
|
||||
|
||||
if (this->GeneratorTarget->IsIPOEnabled(this->ConfigName)) {
|
||||
this->LocalGenerator->AppendFeatureOptions(flags, lang, "IPO");
|
||||
}
|
||||
this->LocalGenerator->AddLanguageFlags(flags, this->GeneratorTarget, lang,
|
||||
this->ConfigName);
|
||||
}
|
||||
|
||||
void cmCommonTargetGenerator::AddModuleDefinitionFlag(
|
||||
|
@@ -232,10 +232,12 @@ void cmGhsMultiTargetGenerator::SetCompilerFlags(std::string const& config,
|
||||
const char* lang = language.c_str();
|
||||
|
||||
if (notKernel) {
|
||||
this->LocalGenerator->AddLanguageFlags(flags, lang, config);
|
||||
this->LocalGenerator->AddLanguageFlags(flags, this->GeneratorTarget,
|
||||
lang, config);
|
||||
} else {
|
||||
this->LocalGenerator->AddLanguageFlags(
|
||||
flags, lang + std::string("_GHS_KERNEL"), config);
|
||||
this->LocalGenerator->AddLanguageFlags(flags, this->GeneratorTarget,
|
||||
lang + std::string("_GHS_KERNEL"),
|
||||
config);
|
||||
}
|
||||
this->LocalGenerator->AddCMP0018Flags(flags, this->GeneratorTarget, lang,
|
||||
config);
|
||||
|
@@ -1662,7 +1662,8 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt,
|
||||
std::string& flags = cflags[lang];
|
||||
|
||||
// Add language-specific flags.
|
||||
this->CurrentLocalGenerator->AddLanguageFlags(flags, lang, configName);
|
||||
this->CurrentLocalGenerator->AddLanguageFlags(flags, gtgt, lang,
|
||||
configName);
|
||||
|
||||
// Add shared-library flags if needed.
|
||||
this->CurrentLocalGenerator->AddCMP0018Flags(flags, gtgt, lang,
|
||||
|
@@ -985,7 +985,7 @@ void cmLocalGenerator::GetTargetFlags(
|
||||
target->GetName().c_str());
|
||||
return;
|
||||
}
|
||||
this->AddLanguageFlags(flags, linkLanguage, buildType);
|
||||
this->AddLanguageFlags(flags, target, linkLanguage, buildType);
|
||||
if (pcli) {
|
||||
this->OutputLinkLibraries(pcli, linkLineComputer, linkLibs,
|
||||
frameworkPath, linkPath);
|
||||
@@ -1050,11 +1050,7 @@ void cmLocalGenerator::GetTargetCompileFlags(cmGeneratorTarget* target,
|
||||
cmMakefile* mf = this->GetMakefile();
|
||||
|
||||
// Add language-specific flags.
|
||||
this->AddLanguageFlags(flags, lang, config);
|
||||
|
||||
if (target->IsIPOEnabled(config)) {
|
||||
this->AppendFeatureOptions(flags, lang, "IPO");
|
||||
}
|
||||
this->AddLanguageFlags(flags, target, lang, config);
|
||||
|
||||
this->AddArchitectureFlags(flags, target, lang, config);
|
||||
|
||||
@@ -1287,6 +1283,7 @@ void cmLocalGenerator::AddArchitectureFlags(std::string& flags,
|
||||
}
|
||||
|
||||
void cmLocalGenerator::AddLanguageFlags(std::string& flags,
|
||||
cmGeneratorTarget const* target,
|
||||
const std::string& lang,
|
||||
const std::string& config)
|
||||
{
|
||||
@@ -1295,6 +1292,10 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags,
|
||||
flagsVar += lang;
|
||||
flagsVar += "_FLAGS";
|
||||
this->AddConfigVariableFlags(flags, flagsVar, config);
|
||||
|
||||
if (target->IsIPOEnabled(config)) {
|
||||
this->AppendFeatureOptions(flags, lang, "IPO");
|
||||
}
|
||||
}
|
||||
|
||||
cmGeneratorTarget* cmLocalGenerator::FindGeneratorTargetToUse(
|
||||
|
@@ -98,8 +98,8 @@ public:
|
||||
const std::string& lang,
|
||||
const std::string& config);
|
||||
|
||||
void AddLanguageFlags(std::string& flags, const std::string& lang,
|
||||
const std::string& config);
|
||||
void AddLanguageFlags(std::string& flags, cmGeneratorTarget const* target,
|
||||
const std::string& lang, const std::string& config);
|
||||
void AddCMP0018Flags(std::string& flags, cmGeneratorTarget const* target,
|
||||
std::string const& lang, const std::string& config);
|
||||
void AddVisibilityPresetFlags(std::string& flags,
|
||||
|
@@ -655,7 +655,7 @@ void cmNinjaNormalTargetGenerator::WriteDeviceLinkStatement()
|
||||
localGen.AddArchitectureFlags(t, &genTarget, cudaLinkLanguage, cfgName);
|
||||
vars["ARCH_FLAGS"] = t;
|
||||
t = "";
|
||||
localGen.AddLanguageFlags(t, cudaLinkLanguage, cfgName);
|
||||
localGen.AddLanguageFlags(t, &genTarget, cudaLinkLanguage, cfgName);
|
||||
vars["LANGUAGE_COMPILE_FLAGS"] = t;
|
||||
}
|
||||
if (this->GetGeneratorTarget()->HasSOName(cfgName)) {
|
||||
@@ -874,7 +874,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
|
||||
vars["ARCH_FLAGS"] = t;
|
||||
t = "";
|
||||
t += lwyuFlags;
|
||||
localGen.AddLanguageFlags(t, TargetLinkLanguage, cfgName);
|
||||
localGen.AddLanguageFlags(t, &genTarget, TargetLinkLanguage, cfgName);
|
||||
vars["LANGUAGE_COMPILE_FLAGS"] = t;
|
||||
}
|
||||
if (this->GetGeneratorTarget()->HasSOName(cfgName)) {
|
||||
|
Reference in New Issue
Block a user