cmComputeLinkDepends: Port to cmGeneratorTarget.
This commit is contained in:
parent
c93230ac38
commit
4329a71c12
|
@ -173,18 +173,19 @@ items that we know the linker will re-use automatically (shared libs).
|
|||
|
||||
//----------------------------------------------------------------------------
|
||||
cmComputeLinkDepends
|
||||
::cmComputeLinkDepends(cmTarget const* target, const std::string& config)
|
||||
::cmComputeLinkDepends(const cmGeneratorTarget* target,
|
||||
const std::string& config)
|
||||
{
|
||||
// Store context information.
|
||||
this->Target = target;
|
||||
this->Makefile = this->Target->GetMakefile();
|
||||
this->Makefile = this->Target->Target->GetMakefile();
|
||||
this->GlobalGenerator = this->Makefile->GetGlobalGenerator();
|
||||
this->CMakeInstance = this->GlobalGenerator->GetCMakeInstance();
|
||||
|
||||
// The configuration being linked.
|
||||
this->HasConfig = !config.empty();
|
||||
this->Config = (this->HasConfig)? config : std::string();
|
||||
this->LinkType = this->Target->ComputeLinkType(this->Config);
|
||||
this->LinkType = this->Target->Target->ComputeLinkType(this->Config);
|
||||
|
||||
// Enable debug mode if requested.
|
||||
this->DebugMode = this->Makefile->IsOn("CMAKE_LINK_DEPENDS_DEBUG_MODE");
|
||||
|
@ -363,7 +364,7 @@ void cmComputeLinkDepends::FollowLinkEntry(BFSEntry const& qe)
|
|||
{
|
||||
// Follow the target dependencies.
|
||||
if(cmTarget::LinkInterface const* iface =
|
||||
entry.Target->GetLinkInterface(this->Config, this->Target))
|
||||
entry.Target->GetLinkInterface(this->Config, this->Target->Target))
|
||||
{
|
||||
const bool isIface =
|
||||
entry.Target->GetType() == cmTarget::INTERFACE_LIBRARY;
|
||||
|
@ -461,7 +462,7 @@ void cmComputeLinkDepends::HandleSharedDependency(SharedDepEntry const& dep)
|
|||
if(entry.Target)
|
||||
{
|
||||
if(cmTarget::LinkInterface const* iface =
|
||||
entry.Target->GetLinkInterface(this->Config, this->Target))
|
||||
entry.Target->GetLinkInterface(this->Config, this->Target->Target))
|
||||
{
|
||||
// Follow public and private dependencies transitively.
|
||||
this->FollowSharedDeps(index, iface, true);
|
||||
|
@ -552,7 +553,7 @@ void cmComputeLinkDepends::AddDirectLinkEntries()
|
|||
{
|
||||
// Add direct link dependencies in this configuration.
|
||||
cmTarget::LinkImplementation const* impl =
|
||||
this->Target->GetLinkImplementation(this->Config);
|
||||
this->Target->Target->GetLinkImplementation(this->Config);
|
||||
this->AddLinkEntries(-1, impl->Libraries);
|
||||
for(std::vector<cmLinkItem>::const_iterator
|
||||
wi = impl->WrongConfigLibraries.begin();
|
||||
|
@ -634,7 +635,7 @@ cmTarget const* cmComputeLinkDepends::FindTargetToLink(int depender_index,
|
|||
const std::string& name)
|
||||
{
|
||||
// Look for a target in the scope of the depender.
|
||||
cmTarget const* from = this->Target;
|
||||
cmTarget const* from = this->Target->Target;
|
||||
if(depender_index >= 0)
|
||||
{
|
||||
if(cmTarget const* depender = this->EntryList[depender_index].Target)
|
||||
|
@ -932,7 +933,7 @@ int cmComputeLinkDepends::ComputeComponentCount(NodeList const& nl)
|
|||
if(cmTarget const* target = this->EntryList[*ni].Target)
|
||||
{
|
||||
if(cmTarget::LinkInterface const* iface =
|
||||
target->GetLinkInterface(this->Config, this->Target))
|
||||
target->GetLinkInterface(this->Config, this->Target->Target))
|
||||
{
|
||||
if(iface->Multiplicity > count)
|
||||
{
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
class cmComputeComponentGraph;
|
||||
class cmGlobalGenerator;
|
||||
class cmMakefile;
|
||||
class cmGeneratorTarget;
|
||||
class cmTarget;
|
||||
class cmake;
|
||||
|
||||
|
@ -31,7 +32,8 @@ class cmake;
|
|||
class cmComputeLinkDepends
|
||||
{
|
||||
public:
|
||||
cmComputeLinkDepends(cmTarget const* target, const std::string& config);
|
||||
cmComputeLinkDepends(cmGeneratorTarget const* target,
|
||||
const std::string& config);
|
||||
~cmComputeLinkDepends();
|
||||
|
||||
// Basic information about each link item.
|
||||
|
@ -57,7 +59,7 @@ public:
|
|||
private:
|
||||
|
||||
// Context information.
|
||||
cmTarget const* Target;
|
||||
cmGeneratorTarget const* Target;
|
||||
cmMakefile* Makefile;
|
||||
cmGlobalGenerator const* GlobalGenerator;
|
||||
cmake* CMakeInstance;
|
||||
|
|
|
@ -497,7 +497,7 @@ bool cmComputeLinkInformation::Compute()
|
|||
}
|
||||
|
||||
// Compute the ordered link line items.
|
||||
cmComputeLinkDepends cld(this->Target->Target, this->Config);
|
||||
cmComputeLinkDepends cld(this->Target, this->Config);
|
||||
cld.SetOldLinkDirMode(this->OldLinkDirMode);
|
||||
cmComputeLinkDepends::EntryVector const& linkEntries = cld.Compute();
|
||||
|
||||
|
|
Loading…
Reference in New Issue