summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2005-11-22 21:08:16 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2005-11-22 21:08:16 (GMT)
commit76724c23bff8b5adcded34f73a4d18123b8b1fe8 (patch)
treeda99edd1c3fd1e6f32a810e710a58aa8a5259056
parent9312deb035f6974460323756c370dbd56662f736 (diff)
downloadCMake-76724c23bff8b5adcded34f73a4d18123b8b1fe8.zip
CMake-76724c23bff8b5adcded34f73a4d18123b8b1fe8.tar.gz
CMake-76724c23bff8b5adcded34f73a4d18123b8b1fe8.tar.bz2
BUG: fix for bug 2357, do not allow targets to link to directories
-rw-r--r--Source/cmOrderLinkDirectories.cxx11
-rw-r--r--Source/cmOrderLinkDirectories.h2
2 files changed, 13 insertions, 0 deletions
diff --git a/Source/cmOrderLinkDirectories.cxx b/Source/cmOrderLinkDirectories.cxx
index 446b3ed..b0e0d6b 100644
--- a/Source/cmOrderLinkDirectories.cxx
+++ b/Source/cmOrderLinkDirectories.cxx
@@ -225,6 +225,7 @@ void cmOrderLinkDirectories::SetLinkInformation(cmTarget& target,
linktype,
const char* targetLibrary)
{
+ m_TargetName = target.GetName();
// collect the search paths from the target into paths set
const std::vector<std::string>& searchPaths = target.GetLinkDirectories();
std::vector<cmStdString> empty;
@@ -279,6 +280,16 @@ bool cmOrderLinkDirectories::DetermineLibraryPathOrder()
std::vector<cmStdString> empty;
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()))
{
cmSystemTools::SplitProgramPath(m_RawLinkItems[i].c_str(),
diff --git a/Source/cmOrderLinkDirectories.h b/Source/cmOrderLinkDirectories.h
index b514081..b70dcf8 100644
--- a/Source/cmOrderLinkDirectories.h
+++ b/Source/cmOrderLinkDirectories.h
@@ -129,6 +129,8 @@ private:
cmStdString m_LinkPrefix;
// set of directories that can not be put in the correct order
std::set<cmStdString> m_ImposibleDirectories;
+ // Name of target
+ cmStdString m_TargetName;
// library regular expressions
cmsys::RegularExpression m_RemoveLibraryExtension;
cmsys::RegularExpression m_ExtractBaseLibraryName;