]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Disable linker flag detection on MSVC/ClangCL. 3569/head
authorTobias Hieta <tobias@hieta.se>
Wed, 22 Mar 2023 21:13:57 +0000 (22:13 +0100)
committerTobias Hieta <tobias@hieta.se>
Wed, 22 Mar 2023 21:13:57 +0000 (22:13 +0100)
This fixes compilation with clang-cl on Windows. There
is a bug in cmake so that check_linker_flag() doesn't give
the correct result when using link.exe/lld-link.exe.

Details in CMake's gitlab: https://gitlab.kitware.com/cmake/cmake/-/issues/22023

Fixes #3522

build/cmake/CMakeModules/AddZstdCompilationFlags.cmake

index 763d27ba4ba984e2738d51eb516b2839d050d8f5..5f179989b687a3661fd9fa3a58b85264a96044ff 100644 (file)
@@ -33,7 +33,12 @@ function(EnableCompilerFlag _flag _C _CXX _LD)
         # implement CHECK_LINKER_FLAG() like feature for CMake < 3.18
         # or require CMake >= 3.18 when we need to add a required
         # linker flag in future.
-        if (ZSTD_HAVE_CHECK_LINKER_FLAG)
+        #
+        # We also skip linker flags check for MSVC compilers (which includes
+        # clang-cl) since currently check_linker_flag() doesn't give correct
+        # results for this configuration,
+        # see: https://gitlab.kitware.com/cmake/cmake/-/issues/22023
+        if (ZSTD_HAVE_CHECK_LINKER_FLAG AND NOT MSVC)
             CHECK_LINKER_FLAG(C ${_flag} LD_FLAG_${varname})
         else ()
             set(LD_FLAG_${varname} false)