summaryrefslogtreecommitdiffstats
path: root/Source/cmCommonTargetGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-07-08 18:49:04 (GMT)
committerBrad King <brad.king@kitware.com>2015-07-09 13:50:06 (GMT)
commitbeee79373222ea01008cd137dd9a3ffa59cbe347 (patch)
treee08f7d3f05b9ebeea6a945eead2eeb47be2480c6 /Source/cmCommonTargetGenerator.cxx
parentabfa5f2d1fac0a55b430e078884ad1ae252d20cd (diff)
downloadCMake-beee79373222ea01008cd137dd9a3ffa59cbe347.zip
CMake-beee79373222ea01008cd137dd9a3ffa59cbe347.tar.gz
CMake-beee79373222ea01008cd137dd9a3ffa59cbe347.tar.bz2
cmCommonTargetGenerator: Adopt GetFeature and friends
De-duplicate the GetFeature, GetFeatureAsBool, and AddFeatureFlags members from the Makefile and Ninja target generators.
Diffstat (limited to 'Source/cmCommonTargetGenerator.cxx')
-rw-r--r--Source/cmCommonTargetGenerator.cxx26
1 files changed, 26 insertions, 0 deletions
diff --git a/Source/cmCommonTargetGenerator.cxx b/Source/cmCommonTargetGenerator.cxx
index 3edeff3..34982b0 100644
--- a/Source/cmCommonTargetGenerator.cxx
+++ b/Source/cmCommonTargetGenerator.cxx
@@ -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");
+ }
+}