[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31233] trunk/blender: bugfix [#23257] cmake tests for SSE, but SSE2 gets enabled
Campbell Barton
ideasman42 at gmail.com
Wed Aug 11 10:23:49 CEST 2010
Revision: 31233
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31233
Author: campbellbarton
Date: 2010-08-11 10:23:48 +0200 (Wed, 11 Aug 2010)
Log Message:
-----------
bugfix [#23257] cmake tests for SSE, but SSE2 gets enabled
patch from Vinay Pawar, some minor changes by me.
Modified Paths:
--------------
trunk/blender/CMakeLists.txt
trunk/blender/build_files/cmake/macros.cmake
Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt 2010-08-11 05:28:44 UTC (rev 31232)
+++ trunk/blender/CMakeLists.txt 2010-08-11 08:23:48 UTC (rev 31233)
@@ -316,12 +316,6 @@
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 @@
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 @@
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 @@
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})
Modified: trunk/blender/build_files/cmake/macros.cmake
===================================================================
--- trunk/blender/build_files/cmake/macros.cmake 2010-08-11 05:28:44 UTC (rev 31232)
+++ trunk/blender/build_files/cmake/macros.cmake 2010-08-11 08:23:48 UTC (rev 31233)
@@ -183,19 +183,38 @@
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)
More information about the Bf-blender-cvs
mailing list