summaryrefslogtreecommitdiff
path: root/Source/cmComputeTargetDepends.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-09-06 13:10:55 -0400
committerBrad King <brad.king@kitware.com>2018-09-07 08:57:51 -0400
commitfc7e4d1ed85370d03acbd62bc753cced3550752b (patch)
tree25e5d5719b2da65398e7d2f0fbc4cb490e4428ff /Source/cmComputeTargetDepends.cxx
parentf782759ed0997eb3d71e1187a829da62668ed5d2 (diff)
downloadcmake-fc7e4d1ed85370d03acbd62bc753cced3550752b.tar.gz
cmLinkItem: Convert to a "sum type" over a string and target pointer
Avoid exposing the item name implicitly as std::string. When the item is a target, avoid storing a second copy of its name. Most link item construction is paired with calls to `FindTargetToLink` to get the possible target pointer. Rename these methods to `ResolveLinkItem` and refactor them to construct the entire item.
Diffstat (limited to 'Source/cmComputeTargetDepends.cxx')
-rw-r--r--Source/cmComputeTargetDepends.cxx8
1 files changed, 4 insertions, 4 deletions
diff --git a/Source/cmComputeTargetDepends.cxx b/Source/cmComputeTargetDepends.cxx
index efdd3a5f86..edda2bd4eb 100644
--- a/Source/cmComputeTargetDepends.cxx
+++ b/Source/cmComputeTargetDepends.cxx
@@ -229,7 +229,7 @@ void cmComputeTargetDepends::CollectTargetDepends(int depender_index)
emitted.insert(depender->GetName());
for (cmLinkImplItem const& lib : impl->Libraries) {
// Don't emit the same library twice for this target.
- if (emitted.insert(lib).second) {
+ if (emitted.insert(lib.AsStr()).second) {
this->AddTargetDepend(depender_index, lib, true);
this->AddInterfaceDepends(depender_index, lib, it, emitted);
}
@@ -245,7 +245,7 @@ void cmComputeTargetDepends::CollectTargetDepends(int depender_index)
emitted.insert(depender->GetName());
for (cmLinkItem const& litem : tutils) {
// Don't emit the same utility twice for this target.
- if (emitted.insert(litem).second) {
+ if (emitted.insert(litem.AsStr()).second) {
this->AddTargetDepend(depender_index, litem, false);
}
}
@@ -261,7 +261,7 @@ void cmComputeTargetDepends::AddInterfaceDepends(
dependee->GetLinkInterface(config, depender)) {
for (cmLinkItem const& lib : iface->Libraries) {
// Don't emit the same library twice for this target.
- if (emitted.insert(lib).second) {
+ if (emitted.insert(lib.AsStr()).second) {
this->AddTargetDepend(depender_index, lib, true);
this->AddInterfaceDepends(depender_index, lib, config, emitted);
}
@@ -324,7 +324,7 @@ void cmComputeTargetDepends::AddTargetDepend(int depender_index,
<< depender->GetName() << "\" does not exist.";
cmListFileBacktrace const* backtrace =
- depender->GetUtilityBacktrace(dependee_name);
+ depender->GetUtilityBacktrace(dependee_name.AsStr());
if (backtrace) {
cm->IssueMessage(messageType, e.str(), *backtrace);
} else {