summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2006-03-22 16:10:58 (GMT)
committerBrad King <brad.king@kitware.com>2006-03-22 16:10:58 (GMT)
commit0376fe4b9becff8de75e81a15c67b40014b19ce3 (patch)
tree7b0ca176b8c5e1ad2d01f7de9a2106a6b021c8f2
parent3806c1050d496953f5b9ae519bb1ca345b45dfbf (diff)
downloadCMake-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.cmake3
-rw-r--r--Source/cmLocalGenerator.cxx13
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);