[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40736] trunk/blender: cmake: sse flags were being defined in 2 different places

Campbell Barton ideasman42 at gmail.com
Sat Oct 1 20:29:40 CEST 2011


Revision: 40736
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40736
Author:   campbellbarton
Date:     2011-10-01 18:29:40 +0000 (Sat, 01 Oct 2011)
Log Message:
-----------
cmake: sse flags were being defined in 2 different places

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/build_files/cmake/macros.cmake

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2011-10-01 17:54:33 UTC (rev 40735)
+++ trunk/blender/CMakeLists.txt	2011-10-01 18:29:40 UTC (rev 40736)
@@ -273,7 +273,7 @@
 	set(WITH_HEADLESS ON)
 endif()
 
-TEST_SSE_SUPPORT()
+TEST_SSE_SUPPORT(COMPILER_SSE_FLAG COMPILER_SSE2_FLAG)
 
 # don't store paths to libs for portable distrobution
 if(WITH_INSTALL_PORTABLE)
@@ -1128,34 +1128,17 @@
 # See TEST_SSE_SUPPORT() for how this is defined.
 
 if(WITH_RAYOPTIMIZATION)
-	if(CMAKE_COMPILER_IS_GNUCC)
-		set(_sse "-msse")
-		set(_sse2 "-msse2")
-	elseif(MSVC)
-		set(_sse "/arch:SSE")
-		set(_sse2 "/arch:SSE2")
-	elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
-		set(_sse)  # icc only has sse2
-		set(_sse2 "-xSSE2")		
-	else()
-		message(WARNING "SSE flags for this compiler: '${CMAKE_C_COMPILER_ID}' not known")
-		set(_sse)
-		set(_sse2)
-	endif()
-
 	if(SUPPORT_SSE_BUILD)
-		set(PLATFORM_CFLAGS " ${_sse} ${PLATFORM_CFLAGS}")
+		set(PLATFORM_CFLAGS " ${COMPILER_SSE_FLAG} ${PLATFORM_CFLAGS}")
 		add_definitions(-D__SSE__ -D__MMX__)
 	endif()
 	if(SUPPORT_SSE2_BUILD)
-		set(PLATFORM_CFLAGS " ${_sse2} ${PLATFORM_CFLAGS}")
+		set(PLATFORM_CFLAGS " ${COMPILER_SSE2_FLAG} ${PLATFORM_CFLAGS}")
 		add_definitions(-D__SSE2__)
 		if(NOT SUPPORT_SSE_BUILD) # dont double up
 			add_definitions(-D__MMX__)
 		endif()
 	endif()
-	unset(_sse)
-	unset(_sse2)
 endif()
 
 

Modified: trunk/blender/build_files/cmake/macros.cmake
===================================================================
--- trunk/blender/build_files/cmake/macros.cmake	2011-10-01 17:54:33 UTC (rev 40735)
+++ trunk/blender/build_files/cmake/macros.cmake	2011-10-01 18:29:40 UTC (rev 40736)
@@ -325,20 +325,32 @@
 	endif()
 endmacro()
 
-macro(TEST_SSE_SUPPORT)
+macro(TEST_SSE_SUPPORT
+	_sse_flags
+	_sse2_flags)
+
 	include(CheckCSourceRuns)
 
 	# message(STATUS "Detecting SSE support")
-	if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
-		set(CMAKE_REQUIRED_FLAGS "-msse -msse2")
+	if(CMAKE_COMPILER_IS_GNUCC)
+		set(${_sse_flags} "-msse")
+		set(${_sse2_flags} "-msse2")
 	elseif(MSVC)
-		set(CMAKE_REQUIRED_FLAGS "/arch:SSE2") # TODO, SSE 1 ?
+		set(${_sse_flags} "/arch:SSE")
+		set(${_sse2_flags} "/arch:SSE2")
 	elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
-		set(CMAKE_REQUIRED_FLAGS "-xSSE2")
+		set(${_sse_flags})  # icc only has sse2
+		set(${_sse2_flags} "-xSSE2")		
 	else()
-		message(STATUS "Compiler: '${CMAKE_C_COMPILER_ID}' has no SSE flags defiend for it!")
+		message(WARNING "SSE flags for this compiler: '${CMAKE_C_COMPILER_ID}' not known")
+		set(_sse_flags)
+		set(_sse2_flags)
 	endif()
 
+	if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+		set(CMAKE_REQUIRED_FLAGS ${_sse_flags} ${_sse2_flags})
+	endif()
+
 	if(NOT DEFINED ${SUPPORT_SSE_BUILD})
 		check_c_source_runs("
 			#include <xmmintrin.h>




More information about the Bf-blender-cvs mailing list