From d4a3b87c13da5db437dc66d646132bdeb902e196 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Thu, 19 Nov 2020 19:34:43 +0100 Subject: [PATCH] cmake: fix import library name for non-MS compiler on Windows - Use _imp.lib suffix only for Microsoft's compiler (MSVC). Prior to this change library suffix _imp.lib was used for the import library on Windows regardless of compiler. With this change the other compilers should now use their default suffix which should be .dll.a. This change is motivated by the usage of pkg-config on MSYS2. Indeed, when 'pkg-config --libs libcurl' is used, -lcurl is passed to ld. The documentation of ld on Windows : https://sourceware.org/binutils/docs/ld/WIN32.html lists, in the 'direct linking to a dll' section, the pattern of the searched import library, and libcurl_imp.lib is not there. Closes https://github.com/curl/curl/pull/6225 --- lib/CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 9736e39e5..f6c364239 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -117,8 +117,11 @@ endif() if(WIN32) if(BUILD_SHARED_LIBS) - # Add "_imp" as a suffix before the extension to avoid conflicting with the statically linked "libcurl.lib" - set_target_properties(${LIB_NAME} PROPERTIES IMPORT_SUFFIX "_imp.lib") + if(MSVC) + # Add "_imp" as a suffix before the extension to avoid conflicting with + # the statically linked "libcurl.lib" + set_target_properties(${LIB_NAME} PROPERTIES IMPORT_SUFFIX "_imp.lib") + endif() endif() endif()