diff options
author | Brad King <brad.king@kitware.com> | 2006-03-22 16:10:58 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2006-03-22 16:10:58 (GMT) |
commit | 0376fe4b9becff8de75e81a15c67b40014b19ce3 (patch) | |
tree | 7b0ca176b8c5e1ad2d01f7de9a2106a6b021c8f2 | |
parent | 3806c1050d496953f5b9ae519bb1ca345b45dfbf (diff) | |
download | CMake-0376fe4b9becff8de75e81a15c67b40014b19ce3.zip CMake-0376fe4b9becff8de75e81a15c67b40014b19ce3.tar.gz CMake-0376fe4b9becff8de75e81a15c67b40014b19ce3.tar.bz2 |
ENH: Added support for linking to MS .lib libraries in MinGW.
-rw-r--r-- | Modules/Platform/Windows-gcc.cmake | 3 | ||||
-rw-r--r-- | Source/cmLocalGenerator.cxx | 13 |
2 files changed, 15 insertions, 1 deletions
diff --git a/Modules/Platform/Windows-gcc.cmake b/Modules/Platform/Windows-gcc.cmake index dddf614..45c72af 100644 --- a/Modules/Platform/Windows-gcc.cmake +++ b/Modules/Platform/Windows-gcc.cmake @@ -17,10 +17,11 @@ SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty SET(CMAKE_LIBRARY_PATH_FLAG "-L") SET(CMAKE_LINK_LIBRARY_FLAG "-l") +SET(CMAKE_EXTRA_LINK_EXTENSIONS ".lib") # MinGW can also link to a MS .lib IF(MINGW) SET(CMAKE_FIND_LIBRARY_PREFIXES "lib" "") - SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a") + SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib") ENDIF(MINGW) SET(CMAKE_C_CREATE_SHARED_MODULE diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 3a8a2f1..7a97cb4 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1319,7 +1319,20 @@ cmLocalGenerator::ComputeLinkInformation(cmTarget& target, orderLibs.AddLinkExtension( this->Makefile->GetDefinition("CMAKE_SHARED_LIBRARY_SUFFIX")); orderLibs.AddLinkExtension( + this->Makefile->GetDefinition("CMAKE_IMPORT_LIBRARY_SUFFIX")); + orderLibs.AddLinkExtension( this->Makefile->GetDefinition("CMAKE_LINK_LIBRARY_SUFFIX")); + if(const char* linkSuffixes = + this->Makefile->GetDefinition("CMAKE_EXTRA_LINK_EXTENSIONS")) + { + std::vector<std::string> linkSuffixVec; + cmSystemTools::ExpandListArgument(linkSuffixes, linkSuffixVec); + for(std::vector<std::string>::iterator i = linkSuffixVec.begin(); + i != linkSuffixVec.end(); ++i) + { + orderLibs.AddLinkExtension(i->c_str()); + } + } orderLibs.SetLinkInformation(target.GetName(), linkLibraries, linkDirectories); |