Explorar o código

Merge topic 'cxx-atomic' into release-4.2

37171d9db0 Source: Improve detection of Linux architectures requiring explicit libatomic

Acked-by: Kitware Robot <[email protected]>
Merge-request: !11441
Brad King hai 2 semanas
pai
achega
32776b4cc6
Modificáronse 1 ficheiros con 13 adicións e 6 borrados
  1. 13 6
      Source/Checks/cm_cxx_features.cmake

+ 13 - 6
Source/Checks/cm_cxx_features.cmake

@@ -102,11 +102,18 @@ else()
   set(CMake_HAVE_CXX_FILESYSTEM FALSE)
 endif()
 
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|aarch64)$")
-  cm_check_cxx_feature(atomic_builtin)
-  if(NOT CMake_HAVE_CXX_ATOMIC_BUILTIN)
-    set(cm_check_cxx_feature_LINK_LIBRARIES atomic)
-    cm_check_cxx_feature(atomic_lib) # defines CMake_HAVE_CXX_ATOMIC_LIB
-    unset(cm_check_cxx_feature_LINK_LIBRARIES)
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+  if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID)
+    set(arch_id "${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}")
+  else()
+    set(arch_id "${CMAKE_SYSTEM_PROCESSOR}")
+  endif()
+  if(NOT arch_id MATCHES "^(x86_64|aarch64)$")
+    cm_check_cxx_feature(atomic_builtin)
+    if(NOT CMake_HAVE_CXX_ATOMIC_BUILTIN)
+      set(cm_check_cxx_feature_LINK_LIBRARIES atomic)
+      cm_check_cxx_feature(atomic_lib) # defines CMake_HAVE_CXX_ATOMIC_LIB
+      unset(cm_check_cxx_feature_LINK_LIBRARIES)
+    endif()
   endif()
 endif()