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.
This commit is contained in:
parent
f77b384cf6
commit
5e07dcf7c8
|
@ -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();
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue