summaryrefslogtreecommitdiffstats
path: root/Source/cmOrderDirectories.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-07-27 16:43:17 (GMT)
committerBrad King <brad.king@kitware.com>2009-07-27 16:43:17 (GMT)
commit0de8be8b49fd073d3746095e4e9ed96155a5edc1 (patch)
tree7694dfde32d81760690bcac91e31adb16c6d812a /Source/cmOrderDirectories.cxx
parent0afa7a95f2edf21ab16105c1920f3833f13b1ad6 (diff)
downloadCMake-0de8be8b49fd073d3746095e4e9ed96155a5edc1.zip
CMake-0de8be8b49fd073d3746095e4e9ed96155a5edc1.tar.gz
CMake-0de8be8b49fd073d3746095e4e9ed96155a5edc1.tar.bz2
ENH: Link runtime libraries of all languages
This adds implicit libraries and search directories for languages linked into a target other than the linker language to its link line. For example, when linking an executable containing both C++ and Fortran code the C++ linker is used but we need to add the Fortran libraries. The variables CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES contain the implicit libraries and directories for each language. Entries for the linker language are known to be implicit in the generated link line. Entries for other languages that do not appear in the known implicit set are listed explicitly at the end of the link line.
Diffstat (limited to 'Source/cmOrderDirectories.cxx')
-rw-r--r--Source/cmOrderDirectories.cxx12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx
index f95c68a..fd5765d 100644
--- a/Source/cmOrderDirectories.cxx
+++ b/Source/cmOrderDirectories.cxx
@@ -372,6 +372,15 @@ cmOrderDirectories
//----------------------------------------------------------------------------
void
cmOrderDirectories
+::AddLanguageDirectories(std::vector<std::string> const& dirs)
+{
+ this->LanguageDirectories.insert(this->LanguageDirectories.end(),
+ dirs.begin(), dirs.end());
+}
+
+//----------------------------------------------------------------------------
+void
+cmOrderDirectories
::SetImplicitDirectories(std::set<cmStdString> const& implicitDirs)
{
this->ImplicitDirectories = implicitDirs;
@@ -400,6 +409,9 @@ void cmOrderDirectories::CollectOriginalDirectories()
{
this->ConstraintEntries[i]->AddDirectory();
}
+
+ // Add language runtime directories last.
+ this->AddOriginalDirectories(this->LanguageDirectories);
}
//----------------------------------------------------------------------------