]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: don't pass -fvisibility=hidden to clang-cl on Windows
authorTobias Hieta <tobias@plex.tv>
Tue, 10 Nov 2020 09:30:29 +0000 (10:30 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 10 Nov 2020 22:40:33 +0000 (23:40 +0100)
When using clang-cl on windows -fvisibility=hidden is not an known
argument. Instead it behaves exactly like MSVC in this case. So let's
make sure we take that path.

In CMake clang-cl sets both CMAKE_C_COMPILER_ID=clang and MSVC get's
defined since clang-cl is basically a MSVC emulator. So guarding like we
do in this patch seems logical.

Reviewed-by: Jakub Zakrzewski
Closes #6194

CMake/CurlSymbolHiding.cmake

index f8500a8457ec0f097b62a37f03aebe4efcd6ed9e..e99ea6f64888a830298a94ffe1ded13746c296dd 100644 (file)
@@ -27,7 +27,7 @@ mark_as_advanced(CURL_HIDDEN_SYMBOLS)
 if(CURL_HIDDEN_SYMBOLS)
   set(SUPPORTS_SYMBOL_HIDING FALSE)
 
-  if(CMAKE_C_COMPILER_ID MATCHES "Clang")
+  if(CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT MSVC)
     set(SUPPORTS_SYMBOL_HIDING TRUE)
     set(_SYMBOL_EXTERN "__attribute__ ((__visibility__ (\"default\")))")
     set(_CFLAG_SYMBOLS_HIDE "-fvisibility=hidden")