summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmTargetLinkLibrariesCommand.cxx13
-rw-r--r--Tests/Simple/CMakeLists.txt2
-rw-r--r--Tests/Simple/simple.cxx2
-rw-r--r--Tests/Simple/simpleLib.cxx3
4 files changed, 19 insertions, 1 deletions
diff --git a/Source/cmTargetLinkLibrariesCommand.cxx b/Source/cmTargetLinkLibrariesCommand.cxx
index 50396e5..e6d7689 100644
--- a/Source/cmTargetLinkLibrariesCommand.cxx
+++ b/Source/cmTargetLinkLibrariesCommand.cxx
@@ -49,7 +49,18 @@ bool cmTargetLinkLibrariesCommand::InitialPass(std::vector<std::string> const& a
m_Makefile->AddLinkLibraryForTarget(args[0].c_str(),i->c_str(),
cmTarget::GENERAL);
}
- }
+ // if this is a library that cmake knows about, and LIBRARY_OUTPUT_PATH
+ // is not set, then add the link directory
+ const char* ldir = m_Makefile->GetDefinition("LIBRARY_OUTPUT_PATH");
+ if (cmSystemTools::IsOff(ldir))
+ {
+ const char* dir = m_Makefile->GetDefinition(i->c_str());
+ if( dir )
+ {
+ m_Makefile->AddLinkDirectory( dir );
+ }
+ }
+ }
return true;
}
diff --git a/Tests/Simple/CMakeLists.txt b/Tests/Simple/CMakeLists.txt
index cb2452b..d42728d 100644
--- a/Tests/Simple/CMakeLists.txt
+++ b/Tests/Simple/CMakeLists.txt
@@ -1,3 +1,5 @@
# a simple test case
PROJECT (simple)
ADD_EXECUTABLE (simple simple.cxx)
+ADD_LIBRARY(simpleLib STATIC simpleLib.cxx)
+TARGET_LINK_LIBRARIES(simple simpleLib)
diff --git a/Tests/Simple/simple.cxx b/Tests/Simple/simple.cxx
index 1482f27..ef26e79 100644
--- a/Tests/Simple/simple.cxx
+++ b/Tests/Simple/simple.cxx
@@ -1,4 +1,6 @@
+extern void simpleLib();
int main ()
{
+ simpleLib();
return 0;
}
diff --git a/Tests/Simple/simpleLib.cxx b/Tests/Simple/simpleLib.cxx
new file mode 100644
index 0000000..281d888
--- /dev/null
+++ b/Tests/Simple/simpleLib.cxx
@@ -0,0 +1,3 @@
+void simpleLib()
+{
+}