[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33826] trunk/blender: fix for cmake flag detection, was not caching the resulting variable so the test ran each time.

Campbell Barton ideasman42 at gmail.com
Tue Dec 21 04:32:52 CET 2010


Revision: 33826
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33826
Author:   campbellbarton
Date:     2010-12-21 04:32:51 +0100 (Tue, 21 Dec 2010)

Log Message:
-----------
fix for cmake flag detection, was not caching the resulting variable so the test ran each time.
also cache SSE, SSE2 checks.

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

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2010-12-21 00:21:42 UTC (rev 33825)
+++ trunk/blender/CMakeLists.txt	2010-12-21 03:32:51 UTC (rev 33826)
@@ -962,6 +962,9 @@
 	else()
 		set(WITH_OPENMP OFF)
 	endif()
+
+	mark_as_advanced(OpenMP_C_FLAGS)
+	mark_as_advanced(OpenMP_CXX_FLAGS)
 endif() 
 
 #-----------------------------------------------------------------------------
@@ -984,32 +987,32 @@
 
 if(CMAKE_COMPILER_IS_GNUCC)
 
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wall)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wcast-align)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wdeclaration-after-statement)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Werror=declaration-after-statement)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Werror=implicit-function-declaration)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Werror=return-type)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Werror=strict-prototypes)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wno-char-subscripts)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wno-unknown-pragmas)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wpointer-arith)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wunused-parameter)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wwrite-strings)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_CAST_ALIGN -Wcast-align)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_DECLARATION_AFTER_STATEMENT -Wdeclaration-after-statement)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_DECLARATION_AFTER_STATEMENT -Werror=declaration-after-statement)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_STRICT_PROTOTYPES -Werror=strict-prototypes)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_POINTER_ARITH -Wpointer-arith)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_PARAMETER -Wunused-parameter)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_WRITE_STRINGS -Wwrite-strings)
 
-	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wall)
-	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wno-invalid-offsetof)
-	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wno-sign-compare)
+	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall)
+	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
+	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
 
 elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
 
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wall)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wpointer-arith)
-	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wno-unknown-pragmas)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_POINTER_ARITH -Wpointer-arith)
+	ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
 
-	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wall)
-	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wno-invalid-offsetof)
-	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wno-sign-compare)
+	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall)
+	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
+	ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
 
 endif()
 

Modified: trunk/blender/build_files/cmake/macros.cmake
===================================================================
--- trunk/blender/build_files/cmake/macros.cmake	2010-12-21 00:21:42 UTC (rev 33825)
+++ trunk/blender/build_files/cmake/macros.cmake	2010-12-21 03:32:51 UTC (rev 33826)
@@ -212,29 +212,34 @@
 		set(CMAKE_REQUIRED_FLAGS "/arch:SSE2") # TODO, SSE 1 ?
 	endif()
 
-	check_c_source_runs("
-		#include <xmmintrin.h>
-		int main() { __m128 v = _mm_setzero_ps(); return 0; }"
-	SUPPORT_SSE_BUILD)
+	if(NOT DEFINED ${SUPPORT_SSE_BUILD})
+		check_c_source_runs("
+			#include <xmmintrin.h>
+			int main() { __m128 v = _mm_setzero_ps(); return 0; }"
+		SUPPORT_SSE_BUILD)
+		
+		if(SUPPORT_SSE_BUILD)
+			message(STATUS "SSE Support: detected.")
+		else()
+			message(STATUS "SSE Support: missing.")
+		endif()
+		set(${SUPPORT_SSE_BUILD} ${SUPPORT_SSE_BUILD} CACHE INTERNAL "SSE Test")
+	endif()	
 
-	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(NOT DEFINED ${SUPPORT_SSE2_BUILD})
+		check_c_source_runs("
+			#include <emmintrin.h>
+			int main() { __m128d v = _mm_setzero_pd(); return 0; }"
+		SUPPORT_SSE2_BUILD)
 
-	if(SUPPORT_SSE_BUILD)
-		message(STATUS "SSE Support: detected.")
-	else()
-		message(STATUS "SSE Support: missing.")
+		if(SUPPORT_SSE2_BUILD)
+			message(STATUS "SSE2 Support: detected.")
+		else()
+			message(STATUS "SSE2 Support: missing.")
+		endif()	
+		set(${SUPPORT_SSE2_BUILD} ${SUPPORT_SSE2_BUILD} CACHE INTERNAL "SSE2 Test")
 	endif()
 
-	if(SUPPORT_SSE2_BUILD)
-		message(STATUS "SSE2 Support: detected.")
-	else()
-		message(STATUS "SSE2 Support: missing.")
-	endif()
-
 endmacro()
 
 # when we have warnings as errors applied globally this
@@ -276,7 +281,7 @@
 endmacro()
 
 
-# XXX, until cmake fix this bug! from CheckCCompilerFlag.cmakem reported 11615
+# XXX, until cmake 2.8.4 is released.
 INCLUDE(CheckCSourceCompiles)
 MACRO (CHECK_C_COMPILER_FLAG__INTERNAL _FLAG _RESULT)
    SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
@@ -295,14 +300,13 @@
 
 macro(ADD_CHECK_C_COMPILER_FLAG
 	_CFLAGS
+	_CACHE_VAR
 	_FLAG)
 
 	# include(CheckCCompilerFlag)
 
-	# odd workaround
-	set(CFLAG_TEST "CFLAG_TEST")
-	CHECK_C_COMPILER_FLAG__INTERNAL("${_FLAG}" CFLAG_TEST)
-	if(CFLAG_TEST)
+	CHECK_C_COMPILER_FLAG__INTERNAL("${_FLAG}" "${_CACHE_VAR}")
+	if(${_CACHE_VAR})
 		# message(STATUS "Using CFLAG: ${_FLAG}")
 		set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}")
 	else()
@@ -312,14 +316,13 @@
 
 macro(ADD_CHECK_CXX_COMPILER_FLAG
 	_CXXFLAGS
+	_CACHE_VAR
 	_FLAG)
 
 	include(CheckCXXCompilerFlag)
 
-	# odd workaround
-	set(CFLAG_TEST "CXXFLAG_TEST")
-	CHECK_CXX_COMPILER_FLAG("${_FLAG}" CXXFLAG_TEST)
-	if(CXXFLAG_TEST)
+	CHECK_CXX_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}")
+	if(${_CACHE_VAR})
 		# message(STATUS "Using CXXFLAG: ${_FLAG}")
 		set(${_CXXFLAGS} "${${_CXXFLAGS}} ${_FLAG}")
 	else()





More information about the Bf-blender-cvs mailing list