cmComputeLinkInformation: Port some implementation to cmGeneratorTarget.
This commit is contained in:
parent
e5fb30fb5b
commit
ce8894aaf0
|
@ -683,8 +683,8 @@ void cmComputeLinkInformation::AddItem(std::string const& item,
|
||||||
this->Depends.push_back(lib);
|
this->Depends.push_back(lib);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->AddTargetItem(lib, tgt->Target);
|
this->AddTargetItem(lib, tgt);
|
||||||
this->AddLibraryRuntimeInfo(lib, tgt->Target);
|
this->AddLibraryRuntimeInfo(lib, tgt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -766,7 +766,7 @@ void cmComputeLinkInformation::AddSharedDepItem(std::string const& item,
|
||||||
if(tgt)
|
if(tgt)
|
||||||
{
|
{
|
||||||
lib = tgt->GetFullPath(this->Config, this->UseImportLibrary);
|
lib = tgt->GetFullPath(this->Config, this->UseImportLibrary);
|
||||||
this->AddLibraryRuntimeInfo(lib, tgt->Target);
|
this->AddLibraryRuntimeInfo(lib, tgt);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1077,7 +1077,7 @@ void cmComputeLinkInformation::SetCurrentLinkType(LinkType lt)
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void cmComputeLinkInformation::AddTargetItem(std::string const& item,
|
void cmComputeLinkInformation::AddTargetItem(std::string const& item,
|
||||||
cmTarget const* target)
|
cmGeneratorTarget const* target)
|
||||||
{
|
{
|
||||||
// This is called to handle a link item that is a full path to a target.
|
// This is called to handle a link item that is a full path to a target.
|
||||||
// If the target is not a static library make sure the link type is
|
// If the target is not a static library make sure the link type is
|
||||||
|
@ -1093,13 +1093,12 @@ void cmComputeLinkInformation::AddTargetItem(std::string const& item,
|
||||||
// Keep track of shared library targets linked.
|
// Keep track of shared library targets linked.
|
||||||
if(target->GetType() == cmTarget::SHARED_LIBRARY)
|
if(target->GetType() == cmTarget::SHARED_LIBRARY)
|
||||||
{
|
{
|
||||||
this->SharedLibrariesLinked.insert(target);
|
this->SharedLibrariesLinked.insert(target->Target);
|
||||||
}
|
}
|
||||||
|
|
||||||
cmGeneratorTarget *gtgt = this->GlobalGenerator->GetGeneratorTarget(target);
|
|
||||||
// Handle case of an imported shared library with no soname.
|
// Handle case of an imported shared library with no soname.
|
||||||
if(this->NoSONameUsesPath &&
|
if(this->NoSONameUsesPath &&
|
||||||
gtgt->IsImportedSharedLibWithoutSOName(this->Config))
|
target->IsImportedSharedLibWithoutSOName(this->Config))
|
||||||
{
|
{
|
||||||
this->AddSharedLibNoSOName(item);
|
this->AddSharedLibNoSOName(item);
|
||||||
return;
|
return;
|
||||||
|
@ -1113,7 +1112,7 @@ void cmComputeLinkInformation::AddTargetItem(std::string const& item,
|
||||||
|
|
||||||
// For compatibility with CMake 2.4 include the item's directory in
|
// For compatibility with CMake 2.4 include the item's directory in
|
||||||
// the linker search path.
|
// the linker search path.
|
||||||
if(this->OldLinkDirMode && !target->IsFrameworkOnApple() &&
|
if(this->OldLinkDirMode && !target->Target->IsFrameworkOnApple() &&
|
||||||
this->OldLinkDirMask.find(cmSystemTools::GetFilenamePath(item)) ==
|
this->OldLinkDirMask.find(cmSystemTools::GetFilenamePath(item)) ==
|
||||||
this->OldLinkDirMask.end())
|
this->OldLinkDirMask.end())
|
||||||
{
|
{
|
||||||
|
@ -1121,7 +1120,7 @@ void cmComputeLinkInformation::AddTargetItem(std::string const& item,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now add the full path to the library.
|
// Now add the full path to the library.
|
||||||
this->Items.push_back(Item(item, true, target));
|
this->Items.push_back(Item(item, true, target->Target));
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -1777,15 +1776,14 @@ cmComputeLinkInformation::GetRuntimeSearchPath()
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void
|
void
|
||||||
cmComputeLinkInformation::AddLibraryRuntimeInfo(std::string const& fullPath,
|
cmComputeLinkInformation::AddLibraryRuntimeInfo(std::string const& fullPath,
|
||||||
cmTarget const* target)
|
cmGeneratorTarget const* target)
|
||||||
{
|
{
|
||||||
cmGeneratorTarget *gtgt = this->GlobalGenerator->GetGeneratorTarget(target);
|
|
||||||
// Ignore targets on Apple where install_name is not @rpath.
|
// Ignore targets on Apple where install_name is not @rpath.
|
||||||
// The dependenty library can be found with other means such as
|
// The dependenty library can be found with other means such as
|
||||||
// @loader_path or full paths.
|
// @loader_path or full paths.
|
||||||
if(this->Makefile->IsOn("CMAKE_PLATFORM_HAS_INSTALLNAME"))
|
if(this->Makefile->IsOn("CMAKE_PLATFORM_HAS_INSTALLNAME"))
|
||||||
{
|
{
|
||||||
if(!gtgt->HasMacOSXRpathInstallNameDir(this->Config))
|
if(!target->HasMacOSXRpathInstallNameDir(this->Config))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1807,7 +1805,7 @@ cmComputeLinkInformation::AddLibraryRuntimeInfo(std::string const& fullPath,
|
||||||
|
|
||||||
// Try to get the soname of the library. Only files with this name
|
// Try to get the soname of the library. Only files with this name
|
||||||
// could possibly conflict.
|
// could possibly conflict.
|
||||||
std::string soName = gtgt->GetSOName(this->Config);
|
std::string soName = target->GetSOName(this->Config);
|
||||||
const char* soname = soName.empty()? 0 : soName.c_str();
|
const char* soname = soName.empty()? 0 : soName.c_str();
|
||||||
|
|
||||||
// Include this library in the runtime path ordering.
|
// Include this library in the runtime path ordering.
|
||||||
|
|
|
@ -129,7 +129,7 @@ private:
|
||||||
std::string NoCaseExpression(const char* str);
|
std::string NoCaseExpression(const char* str);
|
||||||
|
|
||||||
// Handling of link items.
|
// Handling of link items.
|
||||||
void AddTargetItem(std::string const& item, cmTarget const* target);
|
void AddTargetItem(std::string const& item, const cmGeneratorTarget* target);
|
||||||
void AddFullItem(std::string const& item);
|
void AddFullItem(std::string const& item);
|
||||||
bool CheckImplicitDirItem(std::string const& item);
|
bool CheckImplicitDirItem(std::string const& item);
|
||||||
void AddUserItem(std::string const& item, bool pathNotKnown);
|
void AddUserItem(std::string const& item, bool pathNotKnown);
|
||||||
|
@ -183,7 +183,7 @@ private:
|
||||||
bool CMP0060Warn;
|
bool CMP0060Warn;
|
||||||
|
|
||||||
void AddLibraryRuntimeInfo(std::string const& fullPath,
|
void AddLibraryRuntimeInfo(std::string const& fullPath,
|
||||||
cmTarget const* target);
|
const cmGeneratorTarget* target);
|
||||||
void AddLibraryRuntimeInfo(std::string const& fullPath);
|
void AddLibraryRuntimeInfo(std::string const& fullPath);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue