diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-06-18 12:22:23 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2014-06-18 19:27:24 +0000 |
commit | ff5c9684db63bba1e9fabcb9725518a4abc63383 (patch) | |
tree | c984d9142d779d1e80de2528537b8807b135b3e0 /CMakeLists.txt | |
parent | 8dabe0027a36aa5e2d95ec6ad724faa973cd1ee7 (diff) |
Only check for -msse4.2.
We don't care about instruction set extensions other than SSE 4.2, just
check for that.
Do so on all compilers other than MSVC.
Change-Id: I227c31715aab6df0e020d6bc3e3aa41e1bc5cb7e
Reviewed-on: https://code.wireshark.org/review/2405
Reviewed-by: Evan Huus <eapache@gmail.com>
Tested-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 45 |
1 files changed, 15 insertions, 30 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 8eb1244ac8..39fbb7306f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,8 +164,6 @@ if( CMAKE_C_COMPILER_ID MATCHES "MSVC") # This avoids conflicts with the C++ standard library. /DNOMINMAX ) - set(WIRESHARK_SIMD_TESTS - ) if(NOT WIN64) set(LOCAL_CFLAGS ${LOCAL_CFLAGS} "/D_BIND_TO_CURRENT_CRT_VERSION=1") @@ -306,18 +304,6 @@ else() set(WIRESHARK_CPP_ONLY_FLAGS ${WIRESHARK_CPP_ONLY_FLAGS} ${WIRESHARK_EXTRA_COMPILER_CPP_ONLY_FLAGS}) endif() - set(WIRESHARK_SIMD_TESTS - -faltivec - -mmmx - -msse - -msse2 - -msse3 - -mssse3 - -msse4.1 - -msse4.2 - -mavx - ) - add_definitions( -DG_DISABLE_DEPRECATED -DG_DISABLE_SINGLE_INCLUDES @@ -361,22 +347,21 @@ endforeach() message(STATUS "C-Flags: ${CMAKE_C_FLAGS}") message(STATUS "CXX-Flags: ${CMAKE_CXX_FLAGS}") -foreach(THIS_FLAG ${WIRESHARK_SIMD_TESTS}) - string( REGEX REPLACE "[^a-zA-Z0-9_]+" "_" F ${THIS_FLAG} ) - set(${F} ${THIS_FLAG}) - set(V C_${F}_VALID) - message(STATUS "Checking for c-compiler SIMD flag: ${THIS_FLAG}") - check_c_compiler_flag(${${F}} ${V}) - if (${${V}}) - set(WIRESHARK_SIMD_FLAGS "${WIRESHARK_SIMD_FLAGS} ${${F}}") - endif() -endforeach() - -if ( ${WIRESHARK_SIMD_FLAGS} ) - string(REGEX MATCH -msse4.2 - HAVE_SSE4_2 - ${WIRESHARK_SIMD_FLAGS} - ) +# +# XXX - we're assuming MSVC supports the SSE 4.2 intrinsics and +# that other C compilers support them iff they support the +# -msse4.2 flag. +# +# Perhaps we should check whether we can compile something +# that uses them, instead, and do something else to figure +# out what compiler flag, if any, we need to pass to the +# compiler to compile code that uses them. +# +if(CMAKE_C_COMPILER_ID MATCHES "MSVC") + set(HAVE_SSE4_2 TRUE) +else() + message(STATUS "Checking for c-compiler flag: -msse4.2") + check_c_compiler_flag(-msse4.2 HAVE_SSE4_2) endif() check_c_compiler_flag(-fvisibility=hidden FVHIDDEN) |