cmCommonTargetGenerator: Adopt GetFeature and friends
De-duplicate the GetFeature, GetFeatureAsBool, and AddFeatureFlags members from the Makefile and Ninja target generators.
This commit is contained in:
parent
abfa5f2d1f
commit
beee793732
|
@ -35,3 +35,29 @@ std::string const& cmCommonTargetGenerator::GetConfigName() const
|
|||
{
|
||||
return this->ConfigName;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmCommonTargetGenerator::GetFeature(const std::string& feature)
|
||||
{
|
||||
return this->GeneratorTarget->GetFeature(feature, this->ConfigName);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmCommonTargetGenerator::GetFeatureAsBool(const std::string& feature)
|
||||
{
|
||||
return this->GeneratorTarget->GetFeatureAsBool(feature, this->ConfigName);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmCommonTargetGenerator::AddFeatureFlags(
|
||||
std::string& flags, const std::string& lang
|
||||
)
|
||||
{
|
||||
// Add language-specific flags.
|
||||
this->LocalGenerator->AddLanguageFlags(flags, lang, this->ConfigName);
|
||||
|
||||
if(this->GetFeatureAsBool("INTERPROCEDURAL_OPTIMIZATION"))
|
||||
{
|
||||
this->LocalGenerator->AppendFeatureOptions(flags, lang, "IPO");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,14 @@ public:
|
|||
std::string const& GetConfigName() const;
|
||||
|
||||
protected:
|
||||
|
||||
// Add language feature flags.
|
||||
void AddFeatureFlags(std::string& flags, const std::string& lang);
|
||||
|
||||
// Feature query methods.
|
||||
const char* GetFeature(const std::string& feature);
|
||||
bool GetFeatureAsBool(const std::string& feature);
|
||||
|
||||
cmGeneratorTarget* GeneratorTarget;
|
||||
cmTarget* Target;
|
||||
cmMakefile* Makefile;
|
||||
|
|
|
@ -2099,29 +2099,3 @@ void cmMakefileTargetGenerator::AddModuleDefinitionFlag(std::string& flags)
|
|||
flag += (this->LocalGenerator->ConvertToLinkReference(def));
|
||||
this->LocalGenerator->AppendFlags(flags, flag);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const char* cmMakefileTargetGenerator::GetFeature(const std::string& feature)
|
||||
{
|
||||
return this->GeneratorTarget->GetFeature(feature, this->ConfigName);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmMakefileTargetGenerator::GetFeatureAsBool(const std::string& feature)
|
||||
{
|
||||
return this->GeneratorTarget->GetFeatureAsBool(feature, this->ConfigName);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmMakefileTargetGenerator::AddFeatureFlags(
|
||||
std::string& flags, const std::string& lang
|
||||
)
|
||||
{
|
||||
// Add language-specific flags.
|
||||
this->LocalGenerator->AddLanguageFlags(flags, lang, this->ConfigName);
|
||||
|
||||
if(this->GetFeatureAsBool("INTERPROCEDURAL_OPTIMIZATION"))
|
||||
{
|
||||
this->LocalGenerator->AppendFeatureOptions(flags, lang, "IPO");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -258,13 +258,6 @@ protected:
|
|||
// Helper to add flag for windows .def file.
|
||||
void AddModuleDefinitionFlag(std::string& flags);
|
||||
|
||||
// Add language feature flags.
|
||||
void AddFeatureFlags(std::string& flags, const std::string& lang);
|
||||
|
||||
// Feature query methods.
|
||||
const char* GetFeature(const std::string& feature);
|
||||
bool GetFeatureAsBool(const std::string& feature);
|
||||
|
||||
//==================================================================
|
||||
// Convenience routines that do nothing more than forward to
|
||||
// implementaitons
|
||||
|
|
|
@ -96,32 +96,6 @@ std::string cmNinjaTargetGenerator::LanguageCompilerRule(
|
|||
cmGlobalNinjaGenerator::EncodeRuleName(this->Target->GetName());
|
||||
}
|
||||
|
||||
// TODO: Picked up from cmMakefileTargetGenerator. Refactor it.
|
||||
const char* cmNinjaTargetGenerator::GetFeature(const std::string& feature)
|
||||
{
|
||||
return this->GeneratorTarget->GetFeature(feature, this->GetConfigName());
|
||||
}
|
||||
|
||||
// TODO: Picked up from cmMakefileTargetGenerator. Refactor it.
|
||||
bool cmNinjaTargetGenerator::GetFeatureAsBool(const std::string& feature)
|
||||
{
|
||||
return this->GeneratorTarget->GetFeatureAsBool(feature,
|
||||
this->GetConfigName());
|
||||
}
|
||||
|
||||
// TODO: Picked up from cmMakefileTargetGenerator. Refactor it.
|
||||
void cmNinjaTargetGenerator::AddFeatureFlags(std::string& flags,
|
||||
const std::string& lang)
|
||||
{
|
||||
// Add language-specific flags.
|
||||
this->LocalGenerator->AddLanguageFlags(flags, lang, this->GetConfigName());
|
||||
|
||||
if(this->GetFeatureAsBool("INTERPROCEDURAL_OPTIMIZATION"))
|
||||
{
|
||||
this->LocalGenerator->AppendFeatureOptions(flags, lang, "IPO");
|
||||
}
|
||||
}
|
||||
|
||||
std::string
|
||||
cmNinjaTargetGenerator::OrderDependsTargetForTarget()
|
||||
{
|
||||
|
|
|
@ -69,10 +69,6 @@ protected:
|
|||
|
||||
std::string LanguageCompilerRule(const std::string& lang) const;
|
||||
|
||||
const char* GetFeature(const std::string& feature);
|
||||
bool GetFeatureAsBool(const std::string& feature);
|
||||
void AddFeatureFlags(std::string& flags, const std::string& lang);
|
||||
|
||||
std::string OrderDependsTargetForTarget();
|
||||
|
||||
std::string ComputeOrderDependsForTarget();
|
||||
|
|
Loading…
Reference in New Issue