cmTarget: Add to LinkImplementation a backtrace for each library

Allow clients to provide backtrace context on evaluation diagnostics.
This commit is contained in:
Brad King 2014-06-30 10:43:36 -04:00
parent 848c8ccf18
commit 251e835b3f
2 changed files with 7 additions and 5 deletions

View File

@ -6677,7 +6677,7 @@ void cmTarget::ComputeLinkImplementation(const std::string& config,
// The entry is meant for this configuration. // The entry is meant for this configuration.
impl.Libraries.push_back( impl.Libraries.push_back(
cmLinkImplItem(name, this->FindTargetToLink(name))); cmLinkImplItem(name, this->FindTargetToLink(name), le->Backtrace));
} }
std::set<std::string> const& seenProps = cge->GetSeenTargetProperties(); std::set<std::string> const& seenProps = cge->GetSeenTargetProperties();

View File

@ -57,12 +57,14 @@ public:
class cmLinkImplItem: public cmLinkItem class cmLinkImplItem: public cmLinkItem
{ {
public: public:
cmLinkImplItem(): cmLinkItem() {} cmLinkImplItem(): cmLinkItem(), Backtrace(0) {}
cmLinkImplItem(std::string const& n, cmLinkImplItem(std::string const& n,
cmTarget const* t): cmTarget const* t,
cmLinkItem(n, t) {} cmListFileBacktrace const& bt):
cmLinkItem(n, t), Backtrace(bt) {}
cmLinkImplItem(cmLinkImplItem const& r): cmLinkImplItem(cmLinkImplItem const& r):
cmLinkItem(r) {} cmLinkItem(r), Backtrace(r.Backtrace) {}
cmListFileBacktrace Backtrace;
}; };
struct cmTargetLinkInformationMap: struct cmTargetLinkInformationMap: