mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-01 21:54:55 -04:00
Use more precise SIMD flags and detect actual x86_64 SIMD features
This commit is contained in:
@@ -2,40 +2,10 @@ project(sdrdaemonfec)
|
||||
|
||||
find_package(LibNANOMSG)
|
||||
|
||||
EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE )
|
||||
message( STATUS "SDRdaemonFEC: Architecture: ${ARCHITECTURE}" )
|
||||
|
||||
if(${ARCHITECTURE} MATCHES "x86_64|AMD64|x86")
|
||||
SET(USE_SIMD "SSSE3")
|
||||
elseif(${ARCHITECTURE} MATCHES "armv7l")
|
||||
SET(USE_SIMD "NEON")
|
||||
endif()
|
||||
|
||||
message( STATUS "SDRdaemonFEC: use SIMD: ${USE_SIMD}" )
|
||||
|
||||
if(USE_SIMD MATCHES SSSE3)
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
|
||||
set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mssse3" )
|
||||
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -mssse3" )
|
||||
message(STATUS "SDRdaemonFEC: g++ SSSE3")
|
||||
add_definitions(-DUSE_SIMD)
|
||||
add_definitions(-DUSE_SSE)
|
||||
elseif(MSVC)
|
||||
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /arch:SSSE3" )
|
||||
set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Oi /GL /Ot /Ox /arch:SSSE3" )
|
||||
set( CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG" )
|
||||
message(STATUS "SDRdaemonFEC: MSVC SSSE3")
|
||||
add_definitions (/D "_CRT_SECURE_NO_WARNINGS")
|
||||
add_definitions(-DUSE_SIMD)
|
||||
add_definitions(-DUSE_SSE)
|
||||
endif()
|
||||
elseif(USE_SIMD MATCHES NEON)
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
|
||||
set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mfpu=neon" )
|
||||
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -mfpu=neon" )
|
||||
message(STATUS "SDRdaemonFEC: g++ NEON")
|
||||
add_definitions(-DUSE_NEON)
|
||||
endif()
|
||||
if (HAS_SSSE3)
|
||||
message(STATUS "SDRdaemonFEC: use SSSE3 SIMD" )
|
||||
elseif (HAS_NEON)
|
||||
message(STATUS "SDRdaemonFEC: use Neon SIMD" )
|
||||
else()
|
||||
message(STATUS "SDRdaemonFEC: Unsupported architecture")
|
||||
return()
|
||||
|
||||
@@ -23,9 +23,8 @@ INCLUDEPATH += ../../../lz4
|
||||
INCLUDEPATH += $$LIBNANOMSGSRC/src
|
||||
INCLUDEPATH += $$LIBCM256CCSRC
|
||||
|
||||
DEFINES += USE_SIMD=1
|
||||
DEFINES += USE_SSE=1
|
||||
QMAKE_CXXFLAGS += -msse4.1
|
||||
DEFINES += USE_SSSE3=1
|
||||
QMAKE_CXXFLAGS += -mssse3
|
||||
|
||||
CONFIG(Release):build_subdir = release
|
||||
CONFIG(Debug):build_subdir = debug
|
||||
|
||||
Reference in New Issue
Block a user