From cd617d181de03a7a13c2020e6c73cd14585e24b6 Mon Sep 17 00:00:00 2001 From: Jehan Date: Tue, 7 Nov 2017 00:37:54 +0100 Subject: [PATCH] CMake: do not check/set SSE and float-store options on non-x86 targets. Not sure if that's right. I guess we might also find non-x86 machines where floating point computation won't follow IEEE standard as well. But let's do this for now to prevent from useless performance hit. --- CMakeLists.txt | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a07891..e212b4a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,15 +44,18 @@ if (BUILD_SHARED_LIBS) option(BUILD_STATIC "Build static library" ON) endif (BUILD_SHARED_LIBS) -CHECK_C_COMPILER_FLAG(-msse2 SUPPORTS_CFLAG_SSE2) -CHECK_C_COMPILER_FLAG(-mfpmath=sse SUPPORTS_CFLAG_SSE_MATH) -if (CHECK_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -mfpmath=sse") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2 -mfpmath=sse") -else (CHECK_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffloat-store") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffloat-store") -endif (CHECK_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) +string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} TARGET_ARCHITECTURE) +if (TARGET_ARCHITECTURE MATCHES ".*(x86)|(amd).*") + CHECK_C_COMPILER_FLAG(-msse2 SUPPORTS_CFLAG_SSE2) + CHECK_C_COMPILER_FLAG(-mfpmath=sse SUPPORTS_CFLAG_SSE_MATH) + if (CHECK_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -mfpmath=sse") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2 -mfpmath=sse") + else (CHECK_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffloat-store") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffloat-store") + endif (CHECK_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) +endif (TARGET_ARCHITECTURE MATCHES ".*(x86)|(amd).*") configure_file( uchardet.pc.in