summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-09-15 17:30:07 (GMT)
committerBrad King <brad.king@kitware.com>2008-09-15 17:30:07 (GMT)
commit0fe06c812660cd2e030b9f7f53e5e06a27d96f27 (patch)
tree85d534a091cce543b4e08f34b1f8c5fc99adad86
parent76c5697a16245450af9ae7e510cb1a66cce1ab94 (diff)
downloadCMake-0fe06c812660cd2e030b9f7f53e5e06a27d96f27.zip
CMake-0fe06c812660cd2e030b9f7f53e5e06a27d96f27.tar.gz
CMake-0fe06c812660cd2e030b9f7f53e5e06a27d96f27.tar.bz2
ENH: Keep target information in final link line
In cmComputeLinkInformation items in the final link line returned by GetItems now contain a pointer to their corresponding cmTarget if they were produced by a target. This makes available the set of all targets linked.
-rw-r--r--Source/cmComputeLinkInformation.cxx4
-rw-r--r--Source/cmComputeLinkInformation.h9
2 files changed, 8 insertions, 5 deletions
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index 0b02ae1..331e3fd 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -594,7 +594,7 @@ void cmComputeLinkInformation::AddItem(std::string const& item, cmTarget* tgt)
std::string exe = tgt->GetFullPath(config, this->UseImportLibrary,
true);
linkItem += exe;
- this->Items.push_back(Item(linkItem, true));
+ this->Items.push_back(Item(linkItem, true, tgt));
this->Depends.push_back(exe);
}
else
@@ -1020,7 +1020,7 @@ void cmComputeLinkInformation::AddTargetItem(std::string const& item,
}
// Now add the full path to the library.
- this->Items.push_back(Item(item, true));
+ this->Items.push_back(Item(item, true, target));
}
//----------------------------------------------------------------------------
diff --git a/Source/cmComputeLinkInformation.h b/Source/cmComputeLinkInformation.h
index 0ce47bf..147b8ff 100644
--- a/Source/cmComputeLinkInformation.h
+++ b/Source/cmComputeLinkInformation.h
@@ -40,11 +40,14 @@ public:
struct Item
{
- Item(): Value(), IsPath(true) {}
- Item(Item const& item): Value(item.Value), IsPath(item.IsPath) {}
- Item(std::string const& v, bool p): Value(v), IsPath(p) {}
+ Item(): Value(), IsPath(true), Target(0) {}
+ Item(Item const& item):
+ Value(item.Value), IsPath(item.IsPath), Target(item.Target) {}
+ Item(std::string const& v, bool p, cmTarget* target = 0):
+ Value(v), IsPath(p), Target(target) {}
std::string Value;
bool IsPath;
+ cmTarget* Target;
};
typedef std::vector<Item> ItemVector;
ItemVector const& GetItems();