ENH: Added support for linking to MS .lib libraries in MinGW.
This commit is contained in:
parent
3806c1050d
commit
0376fe4b9b
|
@ -17,10 +17,11 @@ SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath
|
||||||
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty
|
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "") # : or empty
|
||||||
SET(CMAKE_LIBRARY_PATH_FLAG "-L")
|
SET(CMAKE_LIBRARY_PATH_FLAG "-L")
|
||||||
SET(CMAKE_LINK_LIBRARY_FLAG "-l")
|
SET(CMAKE_LINK_LIBRARY_FLAG "-l")
|
||||||
|
SET(CMAKE_EXTRA_LINK_EXTENSIONS ".lib") # MinGW can also link to a MS .lib
|
||||||
|
|
||||||
IF(MINGW)
|
IF(MINGW)
|
||||||
SET(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
|
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)
|
ENDIF(MINGW)
|
||||||
|
|
||||||
SET(CMAKE_C_CREATE_SHARED_MODULE
|
SET(CMAKE_C_CREATE_SHARED_MODULE
|
||||||
|
|
|
@ -1318,8 +1318,21 @@ cmLocalGenerator::ComputeLinkInformation(cmTarget& target,
|
||||||
this->Makefile->GetDefinition("CMAKE_STATIC_LIBRARY_SUFFIX"));
|
this->Makefile->GetDefinition("CMAKE_STATIC_LIBRARY_SUFFIX"));
|
||||||
orderLibs.AddLinkExtension(
|
orderLibs.AddLinkExtension(
|
||||||
this->Makefile->GetDefinition("CMAKE_SHARED_LIBRARY_SUFFIX"));
|
this->Makefile->GetDefinition("CMAKE_SHARED_LIBRARY_SUFFIX"));
|
||||||
|
orderLibs.AddLinkExtension(
|
||||||
|
this->Makefile->GetDefinition("CMAKE_IMPORT_LIBRARY_SUFFIX"));
|
||||||
orderLibs.AddLinkExtension(
|
orderLibs.AddLinkExtension(
|
||||||
this->Makefile->GetDefinition("CMAKE_LINK_LIBRARY_SUFFIX"));
|
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(),
|
orderLibs.SetLinkInformation(target.GetName(),
|
||||||
linkLibraries,
|
linkLibraries,
|
||||||
linkDirectories);
|
linkDirectories);
|
||||||
|
|
Loading…
Reference in New Issue