summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-07-28 18:05:34 (GMT)
committerBrad King <brad.king@kitware.com>2015-07-28 19:40:06 (GMT)
commit6d79eda769a5693ed4657f50c97ef5a0c9ba2e1b (patch)
treec91d0978ecf2d24621fb53d1a7911f63a0058ded /Source/cmMakefileTargetGenerator.cxx
parent98d6e9ec2dd0a935b1ebfed50b6e9ecab719557d (diff)
downloadCMake-6d79eda769a5693ed4657f50c97ef5a0c9ba2e1b.zip
CMake-6d79eda769a5693ed4657f50c97ef5a0c9ba2e1b.tar.gz
CMake-6d79eda769a5693ed4657f50c97ef5a0c9ba2e1b.tar.bz2
cmCommonTargetGenerator: Adopt linked target directory computation
Factor a GetLinkedTargetDirectories method out of cmMakefileTargetGenerator::WriteTargetDependRules to compute the list of directories associated with targets to which the current target links.
Diffstat (limited to 'Source/cmMakefileTargetGenerator.cxx')
-rw-r--r--Source/cmMakefileTargetGenerator.cxx30
1 files changed, 4 insertions, 26 deletions
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 0f82fb3..57ab2ca 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -1059,33 +1059,11 @@ void cmMakefileTargetGenerator::WriteTargetDependRules()
<< "\n"
<< "# Targets to which this target links.\n"
<< "set(CMAKE_TARGET_LINKED_INFO_FILES\n";
- std::set<cmTarget const*> emitted;
- const char* cfg = this->LocalGenerator->GetConfigName().c_str();
- if(cmComputeLinkInformation* cli = this->Target->GetLinkInformation(cfg))
+ std::vector<std::string> dirs = this->GetLinkedTargetDirectories();
+ for (std::vector<std::string>::iterator i = dirs.begin();
+ i != dirs.end(); ++i)
{
- cmComputeLinkInformation::ItemVector const& items = cli->GetItems();
- for(cmComputeLinkInformation::ItemVector::const_iterator
- i = items.begin(); i != items.end(); ++i)
- {
- cmTarget const* linkee = i->Target;
- if(linkee && !linkee->IsImported()
- // We can ignore the INTERFACE_LIBRARY items because
- // Target->GetLinkInformation already processed their
- // link interface and they don't have any output themselves.
- && linkee->GetType() != cmTarget::INTERFACE_LIBRARY
- && emitted.insert(linkee).second)
- {
- cmGeneratorTarget* gt =
- this->GlobalGenerator->GetGeneratorTarget(linkee);
- cmLocalGenerator* lg = gt->GetLocalGenerator();
- cmMakefile* mf = linkee->GetMakefile();
- std::string di = mf->GetCurrentBinaryDirectory();
- di += "/";
- di += lg->GetTargetDirectory(*linkee);
- di += "/DependInfo.cmake";
- *this->InfoFileStream << " \"" << di << "\"\n";
- }
- }
+ *this->InfoFileStream << " \"" << *i << "/DependInfo.cmake\"\n";
}
*this->InfoFileStream
<< " )\n";