bugfix [#23257] cmake tests for SSE, but SSE2 gets enabled
patch from Vinay Pawar, some minor changes by me.
This commit is contained in:
@@ -316,12 +316,6 @@ IF(UNIX AND NOT APPLE)
|
||||
|
||||
SET(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing -Wno-char-subscripts")
|
||||
|
||||
IF(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
|
||||
SET(PLATFORM_CFLAGS " -msse -msse2 ${PLATFORM_CFLAGS}")
|
||||
ADD_DEFINITIONS(-D__SSE__)
|
||||
ADD_DEFINITIONS(-D__MMX__)
|
||||
ENDIF(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
|
||||
|
||||
SET(PLATFORM_LINKFLAGS "-pthread")
|
||||
|
||||
# Better warnings
|
||||
@@ -633,12 +627,6 @@ IF(WIN32)
|
||||
SET(WITH_JACK OFF)
|
||||
ENDIF(WITH_JACK)
|
||||
|
||||
IF(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
|
||||
SET(PLATFORM_CFLAGS " -msse -msse2 ${PLATFORM_CFLAGS}")
|
||||
ADD_DEFINITIONS(-D__SSE__)
|
||||
ADD_DEFINITIONS(-D__MMX__)
|
||||
ENDIF(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
|
||||
|
||||
ENDIF(MSVC)
|
||||
|
||||
ENDIF(WIN32)
|
||||
@@ -819,12 +807,6 @@ IF(APPLE)
|
||||
SET(TIFF_LIBPATH ${TIFF}/lib)
|
||||
ENDIF(WITH_IMAGE_TIFF)
|
||||
|
||||
IF(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
|
||||
SET(PLATFORM_CFLAGS " -msse -msse2 ${PLATFORM_CFLAGS}")
|
||||
ADD_DEFINITIONS(-D__SSE__)
|
||||
ADD_DEFINITIONS(-D__MMX__)
|
||||
ENDIF(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
|
||||
|
||||
SET(EXETYPE MACOSX_BUNDLE)
|
||||
|
||||
SET(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g")
|
||||
@@ -868,9 +850,26 @@ IF(WITH_BUILDINFO)
|
||||
ENDIF(BUILD_REV_RETURN)
|
||||
ENDIF(WIN32)
|
||||
ENDIF(WITH_BUILDINFO)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Common.
|
||||
|
||||
IF(WITH_RAYOPTIMIZATION)
|
||||
IF(CMAKE_COMPILER_IS_GNUCC)
|
||||
IF(SUPPORT_SSE_BUILD)
|
||||
SET(PLATFORM_CFLAGS " -msse ${PLATFORM_CFLAGS}")
|
||||
ADD_DEFINITIONS(-D__SSE__)
|
||||
ADD_DEFINITIONS(-D__MMX__)
|
||||
ENDIF(SUPPORT_SSE_BUILD)
|
||||
IF(SUPPORT_SSE2_BUILD)
|
||||
SET(PLATFORM_CFLAGS " -msse2 ${PLATFORM_CFLAGS}")
|
||||
ADD_DEFINITIONS(-D__SSE2__)
|
||||
IF(NOT SUPPORT_SSE_BUILD) # dont double up
|
||||
ADD_DEFINITIONS(-D__MMX__)
|
||||
ENDIF(NOT SUPPORT_SSE_BUILD)
|
||||
ENDIF(SUPPORT_SSE2_BUILD)
|
||||
ENDIF(CMAKE_COMPILER_IS_GNUCC)
|
||||
ENDIF(WITH_RAYOPTIMIZATION)
|
||||
|
||||
IF(WITH_IMAGE_OPENJPEG)
|
||||
set(OPENJPEG ${CMAKE_SOURCE_DIR}/extern/libopenjpeg)
|
||||
set(OPENJPEG_INC ${OPENJPEG})
|
||||
|
@@ -183,19 +183,38 @@ MACRO(SETUP_LIBLINKS
|
||||
ENDMACRO(SETUP_LIBLINKS)
|
||||
|
||||
MACRO(TEST_SSE_SUPPORT)
|
||||
INCLUDE(CheckCXXSourceCompiles)
|
||||
INCLUDE(CheckCSourceRuns)
|
||||
|
||||
MESSAGE(STATUS "Detecting SSE support")
|
||||
IF(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||
SET(CMAKE_REQUIRED_FLAGS "-msse -msse2")
|
||||
ELSEIF(MSVC)
|
||||
SET(CMAKE_REQUIRED_FLAGS "/arch:SSE2")
|
||||
SET(CMAKE_REQUIRED_FLAGS "/arch:SSE2") # TODO, SSE 1 ?
|
||||
ENDIF()
|
||||
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
CHECK_C_SOURCE_RUNS("
|
||||
#include <xmmintrin.h>
|
||||
int main() { __m128 v = _mm_setzero_ps(); return 0; }"
|
||||
SUPPORT_SSE_BUILD)
|
||||
|
||||
CHECK_C_SOURCE_RUNS("
|
||||
#include <emmintrin.h>
|
||||
int main() { __m128d v = _mm_setzero_pd(); return 0; }"
|
||||
SUPPORT_SSE2_BUILD)
|
||||
MESSAGE(STATUS "Detecting SSE support")
|
||||
|
||||
IF(SUPPORT_SSE_BUILD)
|
||||
MESSAGE(STATUS " ...SSE support found.")
|
||||
ELSE(SUPPORT_SSE_BUILD)
|
||||
MESSAGE(STATUS " ...SSE support missing.")
|
||||
ENDIF(SUPPORT_SSE_BUILD)
|
||||
|
||||
IF(SUPPORT_SSE2_BUILD)
|
||||
MESSAGE(STATUS " ...SSE2 support found.")
|
||||
ELSE(SUPPORT_SSE2_BUILD)
|
||||
MESSAGE(STATUS " ...SSE2 support missing.")
|
||||
ENDIF(SUPPORT_SSE2_BUILD)
|
||||
|
||||
ENDMACRO(TEST_SSE_SUPPORT)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user