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;
|
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;
|
std::string const& GetConfigName() const;
|
||||||
|
|
||||||
protected:
|
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;
|
cmGeneratorTarget* GeneratorTarget;
|
||||||
cmTarget* Target;
|
cmTarget* Target;
|
||||||
cmMakefile* Makefile;
|
cmMakefile* Makefile;
|
||||||
|
|
|
@ -2099,29 +2099,3 @@ void cmMakefileTargetGenerator::AddModuleDefinitionFlag(std::string& flags)
|
||||||
flag += (this->LocalGenerator->ConvertToLinkReference(def));
|
flag += (this->LocalGenerator->ConvertToLinkReference(def));
|
||||||
this->LocalGenerator->AppendFlags(flags, flag);
|
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.
|
// Helper to add flag for windows .def file.
|
||||||
void AddModuleDefinitionFlag(std::string& flags);
|
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
|
// Convenience routines that do nothing more than forward to
|
||||||
// implementaitons
|
// implementaitons
|
||||||
|
|
|
@ -96,32 +96,6 @@ std::string cmNinjaTargetGenerator::LanguageCompilerRule(
|
||||||
cmGlobalNinjaGenerator::EncodeRuleName(this->Target->GetName());
|
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
|
std::string
|
||||||
cmNinjaTargetGenerator::OrderDependsTargetForTarget()
|
cmNinjaTargetGenerator::OrderDependsTargetForTarget()
|
||||||
{
|
{
|
||||||
|
|
|
@ -69,10 +69,6 @@ protected:
|
||||||
|
|
||||||
std::string LanguageCompilerRule(const std::string& lang) const;
|
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 OrderDependsTargetForTarget();
|
||||||
|
|
||||||
std::string ComputeOrderDependsForTarget();
|
std::string ComputeOrderDependsForTarget();
|
||||||
|
|
Loading…
Reference in New Issue