From: Viktor Szakats Date: Thu, 13 Feb 2025 01:56:11 +0000 (+0100) Subject: cmake: fix `HAVE_ATOMIC`/`HAVE_STDATOMIC` pre-fill for clang-cl X-Git-Tag: curl-8_13_0~495 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d550966bf8cb8d8d522465ff779b6f3585acaaa5;p=thirdparty%2Fcurl.git cmake: fix `HAVE_ATOMIC`/`HAVE_STDATOMIC` pre-fill for clang-cl `HAVE_ATOMIC` and `HAVE_STDATOMIC` is available in clang-cl builds. Adjust the pre-filled values accordingly. Detected by a temporary job comparing pre-filled and actual values on AppVeyor CI: https://ci.appveyor.com/project/curlorg/curl/builds/51506692/job/2v8qrytgdnlah348#L416 Closes #16313 --- diff --git a/CMake/win32-cache.cmake b/CMake/win32-cache.cmake index 272f5134d1..0036723b6e 100644 --- a/CMake/win32-cache.cmake +++ b/CMake/win32-cache.cmake @@ -52,14 +52,6 @@ if(MINGW) set(HAVE_STRTOK_R 0) endif() endif() - if((CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9) OR - (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6)) - set(HAVE_STDATOMIC_H 1) - set(HAVE_ATOMIC 1) - else() - set(HAVE_STDATOMIC_H 0) - set(HAVE_ATOMIC 0) - endif() else() set(HAVE_LIBGEN_H 0) set(HAVE_FTRUNCATE 0) @@ -73,7 +65,6 @@ else() if(MSVC) set(HAVE_UNISTD_H 0) set(HAVE_STDDEF_H 1) # detected by CMake internally in check_type_size() - set(HAVE_STDATOMIC_H 0) if(MSVC_VERSION GREATER_EQUAL 1600) set(HAVE_STDINT_H 1) # detected by CMake internally in check_type_size() else() @@ -95,10 +86,19 @@ else() set(HAVE_BASENAME 0) set(HAVE_STRTOK_R 0) set(HAVE_FILE_OFFSET_BITS 0) - set(HAVE_ATOMIC 0) endif() endif() +if((CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9) OR + (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6)) + # MinGW or clang-cl + set(HAVE_STDATOMIC_H 1) + set(HAVE_ATOMIC 1) +else() + set(HAVE_STDATOMIC_H 0) + set(HAVE_ATOMIC 0) +endif() + # Available in Windows XP and newer set(HAVE_GETADDRINFO 1) set(HAVE_FREEADDRINFO 1)