|
@@ -95,11 +95,13 @@ public:
|
|
|
: Backtrace(NULL)
|
|
|
{
|
|
|
this->PolicyWarnedCMP0022 = false;
|
|
|
+ this->UtilityItemsDone = false;
|
|
|
}
|
|
|
cmTargetInternals(cmTargetInternals const&)
|
|
|
: Backtrace(NULL)
|
|
|
{
|
|
|
this->PolicyWarnedCMP0022 = false;
|
|
|
+ this->UtilityItemsDone = false;
|
|
|
}
|
|
|
~cmTargetInternals();
|
|
|
|
|
@@ -151,6 +153,9 @@ public:
|
|
|
SourceFilesMapType;
|
|
|
SourceFilesMapType SourceFilesMap;
|
|
|
|
|
|
+ std::set<cmLinkItem> UtilityItems;
|
|
|
+ bool UtilityItemsDone;
|
|
|
+
|
|
|
struct TargetPropertyEntry {
|
|
|
TargetPropertyEntry(cmsys::auto_ptr<cmCompiledGeneratorExpression> cge,
|
|
|
const std::string &targetName = std::string())
|
|
@@ -470,6 +475,22 @@ cmListFileBacktrace const* cmTarget::GetUtilityBacktrace(
|
|
|
return &i->second;
|
|
|
}
|
|
|
|
|
|
+//----------------------------------------------------------------------------
|
|
|
+std::set<cmLinkItem> const& cmTarget::GetUtilityItems() const
|
|
|
+{
|
|
|
+ if(!this->Internal->UtilityItemsDone)
|
|
|
+ {
|
|
|
+ this->Internal->UtilityItemsDone = true;
|
|
|
+ for(std::set<std::string>::const_iterator i = this->Utilities.begin();
|
|
|
+ i != this->Utilities.end(); ++i)
|
|
|
+ {
|
|
|
+ this->Internal->UtilityItems.insert(
|
|
|
+ cmLinkItem(*i, this->Makefile->FindTargetToUse(*i)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return this->Internal->UtilityItems;
|
|
|
+}
|
|
|
+
|
|
|
//----------------------------------------------------------------------------
|
|
|
void cmTarget::FinishConfigure()
|
|
|
{
|