diff options
author | Brad King <brad.king@kitware.com> | 2009-07-27 16:43:17 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-07-27 16:43:17 (GMT) |
commit | 0de8be8b49fd073d3746095e4e9ed96155a5edc1 (patch) | |
tree | 7694dfde32d81760690bcac91e31adb16c6d812a /Source/cmOrderDirectories.cxx | |
parent | 0afa7a95f2edf21ab16105c1920f3833f13b1ad6 (diff) | |
download | CMake-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.cxx | 12 |
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); } //---------------------------------------------------------------------------- |