Revision: 29944
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29944
Author:   blendix
Date:     2010-07-04 20:40:59 +0200 (Sun, 04 Jul 2010)

Log Message:
-----------
Detect SSE building support with cmake, and moved setting the defines
out of the render mode cmake file into the main one. Should fix PPC
compile, and hopefully not break others.

Modified Paths:
--------------
    trunk/blender/CMake/macros.cmake
    trunk/blender/CMakeLists.txt
    trunk/blender/source/blender/render/CMakeLists.txt

Modified: trunk/blender/CMake/macros.cmake
===================================================================
--- trunk/blender/CMake/macros.cmake    2010-07-04 17:22:24 UTC (rev 29943)
+++ trunk/blender/CMake/macros.cmake    2010-07-04 18:40:59 UTC (rev 29944)
@@ -181,3 +181,20 @@
                TARGET_LINK_LIBRARIES(${target} ${PTHREADS_LIB})
        ENDIF(WIN32)
 ENDMACRO(SETUP_LIBLINKS)
+
+MACRO(TEST_SSE_SUPPORT)
+       INCLUDE(CHECKCXXSOURCECOMPILES)
+
+       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")
+       ENDIF()
+
+       CHECK_CXX_SOURCE_COMPILES("
+               #include <xmmintrin.h>
+               int main() { __m128 v = _mm_setzero_ps(); return 0; }"
+       SUPPORT_SSE_BUILD)
+ENDMACRO(TEST_SSE_SUPPORT)
+

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt        2010-07-04 17:22:24 UTC (rev 29943)
+++ trunk/blender/CMakeLists.txt        2010-07-04 18:40:59 UTC (rev 29944)
@@ -60,6 +60,10 @@
 SET(BLENDER_VERSION  2.5)
 
 #-----------------------------------------------------------------------------
+# Load some macros.
+INCLUDE(CMake/macros.cmake)
+
+#-----------------------------------------------------------------------------
 # Set default config options
 
 # Blender internal features
@@ -114,7 +118,7 @@
 OPTION(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation 
tracking" OFF)
 OPTION(WITH_INSTALL       "Install accompanying scripts and language files 
needed to run blender" ON)
 
-IF (APPLE)
+IF(APPLE)
        OPTION(WITH_COCOA         "Use Cocoa framework instead of deprecated 
Carbon" ON)
        OPTION(USE_QTKIT          "Use QtKit instead of Carbon quicktime 
(needed for having partial quicktime for 64bit)" OFF)
        OPTION(WITH_LIBS10.5  "Use 10.5 libs (needed for 64bit builds)" OFF)
@@ -128,6 +132,8 @@
        MESSAGE("WARNING: WITH_PLAYER needs WITH_GAMEENGINE")
 ENDIF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
 
+TEST_SSE_SUPPORT()
+
 # disabled for now, not supported
 # OPTION(WITH_WEBPLUGIN     "Enable Web Plugin (Unix only)" OFF)
 
@@ -140,10 +146,6 @@
 # When changing any of this remember to update the notes in 
doc/blender-cmake.txt
 
 #-----------------------------------------------------------------------------
-# Load some macros.
-INCLUDE(CMake/macros.cmake)
-
-#-----------------------------------------------------------------------------
 #Platform specifics
 
 IF(UNIX AND NOT APPLE)
@@ -308,9 +310,11 @@
 
        SET(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing 
-Wno-char-subscripts")
 
-       IF(WITH_RAYOPTIMIZATION)
-               SET(PLATFORM_CFLAGS " -msse ${PLATFORM_CFLAGS}")
-       ENDIF(WITH_RAYOPTIMIZATION)
+       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")
 
@@ -396,6 +400,11 @@
                SET(QUICKTIME_LIBPATH ${QUICKTIME}/Libraries)
        ENDIF(WITH_QUICKTIME)
 
+       IF(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
+               ADD_DEFINITIONS(-D__SSE__)
+               ADD_DEFINITIONS(-D__MMX__)
+       ENDIF(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
+
        IF(MSVC)
                IF(CMAKE_CL_64)
                        SET(LLIBS kernel32 user32 vfw32 winmm ws2_32 )
@@ -797,6 +806,12 @@
                SET(TIFF_LIBPATH ${TIFF}/lib)
        ENDIF(WITH_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")

Modified: trunk/blender/source/blender/render/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/render/CMakeLists.txt  2010-07-04 17:22:24 UTC 
(rev 29943)
+++ trunk/blender/source/blender/render/CMakeLists.txt  2010-07-04 18:40:59 UTC 
(rev 29944)
@@ -54,11 +54,6 @@
        ENDIF(CMAKE_OSX_ARCHITECTURES MATCHES "i386" OR CMAKE_OSX_ARCHITECTURES 
MATCHES "x86_64")
 ENDIF(APPLE)
 
-IF(WITH_RAYOPTIMIZATION)
-       ADD_DEFINITIONS(-D__SSE__)
-       ADD_DEFINITIONS(-D__MMX__)
-ENDIF(WITH_RAYOPTIMIZATION)
-
 #TODO
 #if env['OURPLATFORM']=='linux2':
 #    cflags='-pthread'


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to