From aa18d0a4132dd44616554e1af866f46d09d3c16e Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Tue, 13 Dec 2022 19:19:12 +0800 Subject: [PATCH] other: adjust compiler flag for clang. --- cmake/cmake.define | 22 ++++++++++++++-------- cmake/cmake.platform | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/cmake/cmake.define b/cmake/cmake.define index d73c42e375..600343740d 100644 --- a/cmake/cmake.define +++ b/cmake/cmake.define @@ -124,26 +124,32 @@ ELSE () ENDIF () INCLUDE(CheckCCompilerFlag) - CHECK_C_COMPILER_FLAG("-msse4.2" GCC_SUPPORT_SSE42) - CHECK_C_COMPILER_FLAG("-mfma" GCC_SUPPORT_FMA) - CHECK_C_COMPILER_FLAG("-mavx" GCC_SUPPORT_AVX) - CHECK_C_COMPILER_FLAG("-mavx2" GCC_SUPPORT_AVX2) + IF ("${CMAKE_C_COMPILER_ID}" MATCHES "Clang") + SET(COMPILER_SUPPORT_SSE42 true) + MESSAGE(STATUS "Always enable sse4.2 for Clang") + ELSE() + CHECK_C_COMPILER_FLAG("-msse4.2" COMPILER_SUPPORT_SSE42) + ENDIF() - IF (GCC_SUPPORT_SSE42) + CHECK_C_COMPILER_FLAG("-mfma" COMPILER_SUPPORT_FMA) + CHECK_C_COMPILER_FLAG("-mavx" COMPILER_SUPPORT_AVX) + CHECK_C_COMPILER_FLAG("-mavx2" COMPILER_SUPPORT_AVX2) + + IF (COMPILER_SUPPORT_SSE42) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2") ENDIF() - IF (GCC_SUPPORT_FMA) + IF (COMPILER_SUPPORT_FMA) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfma") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfma") ENDIF() IF ("${SIMD_SUPPORT}" MATCHES "true") - IF (GCC_SUPPORT_AVX) + IF (COMPILER_SUPPORT_AVX) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx") ENDIF() - IF (GCC_SUPPORT_AVX2) + IF (COMPILER_SUPPORT_AVX2) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2") ENDIF() diff --git a/cmake/cmake.platform b/cmake/cmake.platform index 711d74fa4c..a4bfcaf609 100644 --- a/cmake/cmake.platform +++ b/cmake/cmake.platform @@ -147,7 +147,7 @@ ELSE () ENDIF () ENDIF () -MESSAGE(STATUS "platform arch:" ${PLATFORM_ARCH_STR}) +MESSAGE(STATUS "Platform arch:" ${PLATFORM_ARCH_STR}) MESSAGE("C Compiler: ${CMAKE_C_COMPILER} (${CMAKE_C_COMPILER_ID}, ${CMAKE_C_COMPILER_VERSION})") MESSAGE("CXX Compiler: ${CMAKE_CXX_COMPILER} (${CMAKE_C_COMPILER_ID}, ${CMAKE_CXX_COMPILER_VERSION})")