BUG: fix for bug 2357, do not allow targets to link to directories
This commit is contained in:
parent
9312deb035
commit
76724c23bf
|
@ -225,6 +225,7 @@ void cmOrderLinkDirectories::SetLinkInformation(cmTarget& target,
|
||||||
linktype,
|
linktype,
|
||||||
const char* targetLibrary)
|
const char* targetLibrary)
|
||||||
{
|
{
|
||||||
|
m_TargetName = target.GetName();
|
||||||
// collect the search paths from the target into paths set
|
// collect the search paths from the target into paths set
|
||||||
const std::vector<std::string>& searchPaths = target.GetLinkDirectories();
|
const std::vector<std::string>& searchPaths = target.GetLinkDirectories();
|
||||||
std::vector<cmStdString> empty;
|
std::vector<cmStdString> empty;
|
||||||
|
@ -279,6 +280,16 @@ bool cmOrderLinkDirectories::DetermineLibraryPathOrder()
|
||||||
std::vector<cmStdString> empty;
|
std::vector<cmStdString> empty;
|
||||||
for(unsigned int i=0; i < m_RawLinkItems.size(); ++i)
|
for(unsigned int i=0; i < m_RawLinkItems.size(); ++i)
|
||||||
{
|
{
|
||||||
|
if(cmSystemTools::FileIsDirectory(m_RawLinkItems[i].c_str()))
|
||||||
|
{
|
||||||
|
std::string message = "Warning: Ignoring path found in link libraries for target: ";
|
||||||
|
message += m_TargetName;
|
||||||
|
message += ", path is: ";
|
||||||
|
message += m_RawLinkItems[i];
|
||||||
|
message += ". Expected a library name or a full path to a library name.";
|
||||||
|
cmSystemTools::Message(message.c_str());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if(cmSystemTools::FileIsFullPath(m_RawLinkItems[i].c_str()))
|
if(cmSystemTools::FileIsFullPath(m_RawLinkItems[i].c_str()))
|
||||||
{
|
{
|
||||||
cmSystemTools::SplitProgramPath(m_RawLinkItems[i].c_str(),
|
cmSystemTools::SplitProgramPath(m_RawLinkItems[i].c_str(),
|
||||||
|
|
|
@ -129,6 +129,8 @@ private:
|
||||||
cmStdString m_LinkPrefix;
|
cmStdString m_LinkPrefix;
|
||||||
// set of directories that can not be put in the correct order
|
// set of directories that can not be put in the correct order
|
||||||
std::set<cmStdString> m_ImposibleDirectories;
|
std::set<cmStdString> m_ImposibleDirectories;
|
||||||
|
// Name of target
|
||||||
|
cmStdString m_TargetName;
|
||||||
// library regular expressions
|
// library regular expressions
|
||||||
cmsys::RegularExpression m_RemoveLibraryExtension;
|
cmsys::RegularExpression m_RemoveLibraryExtension;
|
||||||
cmsys::RegularExpression m_ExtractBaseLibraryName;
|
cmsys::RegularExpression m_ExtractBaseLibraryName;
|
||||||
|
|
Loading…
Reference in New Issue