Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMake/macros.cmake17
-rw-r--r--CMakeLists.txt31
-rw-r--r--source/blender/render/CMakeLists.txt5
3 files changed, 40 insertions, 13 deletions
diff --git a/CMake/macros.cmake b/CMake/macros.cmake
index 914547e168e..17662c5c447 100644
--- a/CMake/macros.cmake
+++ b/CMake/macros.cmake
@@ -181,3 +181,20 @@ MACRO(SETUP_LIBLINKS
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)
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 82c57c014fa..1088d95ab67 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -60,6 +60,10 @@ SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
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_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the rayt
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 @@ IF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
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 @@ ENDIF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
# 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 @@ IF(UNIX AND NOT APPLE)
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 @@ IF(WIN32)
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 @@ IF(APPLE)
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")
diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt
index 89bdad7c6c7..9199a0a33ba 100644
--- a/source/blender/render/CMakeLists.txt
+++ b/source/blender/render/CMakeLists.txt
@@ -54,11 +54,6 @@ IF(APPLE)
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'