summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-06-19 17:39:25 (GMT)
committerBrad King <brad.king@kitware.com>2014-07-07 12:52:41 (GMT)
commitf77b384cf6a4e9206e6067b7bfe0677a962268c4 (patch)
tree198d0463dec1c09c7bf98cccd20209b661eacc72 /Source
parent61ef8daad5d15256daec08eeb0437fdece330001 (diff)
downloadCMake-f77b384cf6a4e9206e6067b7bfe0677a962268c4.zip
CMake-f77b384cf6a4e9206e6067b7bfe0677a962268c4.tar.gz
CMake-f77b384cf6a4e9206e6067b7bfe0677a962268c4.tar.bz2
cmTarget: Simplify INTERFACE_COMPILE_FEATURES usage requirement lookup
Use the AddInterfaceEntries helper to avoid duplication.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmTarget.cxx42
1 files changed, 3 insertions, 39 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index e35167e..98a9920 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -2615,45 +2615,9 @@ void cmTarget::GetCompileFeatures(std::vector<std::string> &result,
if (!this->Internal->CacheLinkInterfaceCompileFeaturesDone[config])
{
- for (std::vector<cmValueWithOrigin>::const_iterator
- it = this->Internal->LinkImplementationPropertyEntries.begin(),
- end = this->Internal->LinkImplementationPropertyEntries.end();
- it != end; ++it)
- {
- if (!cmGeneratorExpression::IsValidTargetName(it->Value)
- && cmGeneratorExpression::Find(it->Value) == std::string::npos)
- {
- continue;
- }
- {
- cmGeneratorExpression ge;
- cmsys::auto_ptr<cmCompiledGeneratorExpression> cge =
- ge.Parse(it->Value);
- std::string targetResult = cge->Evaluate(this->Makefile, config,
- false, this, 0, 0);
- if (!this->Makefile->FindTargetToUse(targetResult))
- {
- continue;
- }
- }
- std::string featureGenex = "$<TARGET_PROPERTY:" +
- it->Value + ",INTERFACE_COMPILE_FEATURES>";
- if (cmGeneratorExpression::Find(it->Value) != std::string::npos)
- {
- // Because it->Value is a generator expression, ensure that it
- // evaluates to the non-empty string before being used in the
- // TARGET_PROPERTY expression.
- featureGenex = "$<$<BOOL:" + it->Value + ">:" + featureGenex + ">";
- }
- cmGeneratorExpression ge(&it->Backtrace);
- cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(
- featureGenex);
-
- this->Internal
- ->CachedLinkInterfaceCompileFeaturesEntries[config].push_back(
- new cmTargetInternals::TargetPropertyEntry(cge,
- it->Value));
- }
+ this->Internal->AddInterfaceEntries(
+ this, config, "INTERFACE_COMPILE_FEATURES",
+ this->Internal->CachedLinkInterfaceCompileFeaturesEntries[config]);
}
processCompileFeatures(this,