summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-06-30 15:39:09 (GMT)
committerBrad King <brad.king@kitware.com>2014-07-07 12:52:41 (GMT)
commit5e07dcf7c8e884380e1ad5ab64ba3bcdef601eee (patch)
treee7f62c4b0ff70fd6844eaa784dae806d5681dab3
parentf77b384cf6a4e9206e6067b7bfe0677a962268c4 (diff)
downloadCMake-5e07dcf7c8e884380e1ad5ab64ba3bcdef601eee.zip
CMake-5e07dcf7c8e884380e1ad5ab64ba3bcdef601eee.tar.gz
CMake-5e07dcf7c8e884380e1ad5ab64ba3bcdef601eee.tar.bz2
cmTarget: Add to LinkImplementation whether each library was a genex
Implementation of CMP0027 OLD behavior needs to know whether each entry in LinkImplementation::Libraries came from a generator expression or not. Add a FromGenex member to cmLinkImplItem to record this.
-rw-r--r--Source/cmTarget.cxx12
-rw-r--r--Source/cmTarget.h10
2 files changed, 11 insertions, 11 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 98a9920..9ba8456 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -6509,12 +6509,9 @@ void cmTarget::ComputeLinkImplementation(const std::string& config,
cmGeneratorExpression ge(&le->Backtrace);
cmsys::auto_ptr<cmCompiledGeneratorExpression> const cge =
ge.Parse(le->Value);
- cmSystemTools::ExpandListArgument(cge->Evaluate(this->Makefile,
- config,
- false,
- head,
- &dagChecker),
- llibs);
+ std::string const evaluated =
+ cge->Evaluate(this->Makefile, config, false, head, &dagChecker);
+ cmSystemTools::ExpandListArgument(evaluated, llibs);
for(std::vector<std::string>::const_iterator li = llibs.begin();
li != llibs.end(); ++li)
@@ -6562,7 +6559,8 @@ void cmTarget::ComputeLinkImplementation(const std::string& config,
// The entry is meant for this configuration.
impl.Libraries.push_back(
- cmLinkImplItem(name, this->FindTargetToLink(name), le->Backtrace));
+ cmLinkImplItem(name, this->FindTargetToLink(name),
+ le->Backtrace, evaluated != le->Value));
}
std::set<std::string> const& seenProps = cge->GetSeenTargetProperties();
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 5f2a557..dc67f1e 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -57,14 +57,16 @@ public:
class cmLinkImplItem: public cmLinkItem
{
public:
- cmLinkImplItem(): cmLinkItem(), Backtrace(0) {}
+ cmLinkImplItem(): cmLinkItem(), Backtrace(0), FromGenex(false) {}
cmLinkImplItem(std::string const& n,
cmTarget const* t,
- cmListFileBacktrace const& bt):
- cmLinkItem(n, t), Backtrace(bt) {}
+ cmListFileBacktrace const& bt,
+ bool fromGenex):
+ cmLinkItem(n, t), Backtrace(bt), FromGenex(fromGenex) {}
cmLinkImplItem(cmLinkImplItem const& r):
- cmLinkItem(r), Backtrace(r.Backtrace) {}
+ cmLinkItem(r), Backtrace(r.Backtrace), FromGenex(r.FromGenex) {}
cmListFileBacktrace Backtrace;
+ bool FromGenex;
};
struct cmTargetLinkInformationMap: