[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40737] trunk/blender: cmake:

Campbell Barton ideasman42 at gmail.com
Sat Oct 1 21:52:34 CEST 2011


Revision: 40737
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40737
Author:   campbellbarton
Date:     2011-10-01 19:52:33 +0000 (Sat, 01 Oct 2011)
Log Message:
-----------
cmake:
- fix for cmake's SSE detection which would fail because of strict warnings and also had redundant cache setting.
- was incorrectly initializing variables (own bad)
- python was searching for libs on every run, now only do this if there not cached.

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/build_files/cmake/Modules/FindPythonLibsUnix.cmake
    trunk/blender/build_files/cmake/macros.cmake
    trunk/blender/source/blender/blenfont/CMakeLists.txt

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2011-10-01 18:29:40 UTC (rev 40736)
+++ trunk/blender/CMakeLists.txt	2011-10-01 19:52:33 UTC (rev 40737)
@@ -287,7 +287,7 @@
 set(WITH_BINRELOC OFF)
 
 # MAXOSX only, set to avoid uninitialized
-set(EXETYPE)
+set(EXETYPE "")
 
 # C/C++ flags
 set(PLATFORM_CFLAGS)
@@ -298,13 +298,13 @@
 
 # libraries to link the binary with passed to target_link_libraries()
 # known as LLIBS to scons
-set(PLATFORM_LINKLIBS)
+set(PLATFORM_LINKLIBS "")
 
 # Added to linker flags in setup_liblinks
 # - CMAKE_EXE_LINKER_FLAGS
 # - CMAKE_EXE_LINKER_FLAGS_DEBUG
-set(PLATFORM_LINKFLAGS)
-set(PLATFORM_LINKFLAGS_DEBUG)
+set(PLATFORM_LINKFLAGS "")
+set(PLATFORM_LINKFLAGS_DEBUG "")
 
 
 # disabled for now, not supported
@@ -436,7 +436,7 @@
 		)
 
 		if(INTL_LIBRARY AND ICONV_LIBRARY)
-			set(GETTEXT_LIB ${INTL_LIBRARY} ${ICONV_LIBRARY})
+			set(GETTEXT_LIBRARIES ${INTL_LIBRARY} ${ICONV_LIBRARY})
 		endif()
 	endif()
 
@@ -645,9 +645,9 @@
 
 		if(WITH_INTERNATIONAL)
 			set(GETTEXT ${LIBDIR}/gettext)
-			set(GETTEXT_INC ${GETTEXT}/include)
+			set(GETTEXT_INCLUDE_DIRS ${GETTEXT}/include)
 			set(GETTEXT_LIBPATH ${GETTEXT}/lib)
-			set(GETTEXT_LIB gnu_gettext)
+			set(GETTEXT_LIBRARIES gnu_gettext)
 		endif()
 
 		if(CMAKE_CL_64)
@@ -745,7 +745,7 @@
 			set(OPENEXR_INCUDE ${OPENEXR}/include${MSVC_INC})
 			set(OPENEXR_INCLUDE_DIRS
 				${OPENEXR_INCUDE}
-			        ${OPENEXR_INCUDE}/IlmImf
+				${OPENEXR_INCUDE}/IlmImf
 				${OPENEXR_INCUDE}/Iex
 				${OPENEXR_INCUDE}/Imath
 			)
@@ -804,9 +804,9 @@
 
 		if(WITH_INTERNATIONAL)
 			set(GETTEXT ${LIBDIR}/gcc/gettext)
-			set(GETTEXT_INC ${GETTEXT}/include)
+			set(GETTEXT_INCLUDE_DIRS ${GETTEXT}/include)
 			set(GETTEXT_LIBPATH ${GETTEXT}/lib)
-			set(GETTEXT_LIB intl)
+			set(GETTEXT_LIBRARIES intl)
 		endif()
 
 		set(JPEG_LIBRARIES libjpeg)
@@ -956,8 +956,8 @@
 
 	if(WITH_INTERNATIONAL)
 		set(GETTEXT ${LIBDIR}/gettext)
-		set(GETTEXT_INC "${GETTEXT}/include")
-		set(GETTEXT_LIB intl iconv)
+		set(GETTEXT_INCLUDE_DIRS "${GETTEXT}/include")
+		set(GETTEXT_LIBRARIES intl iconv)
 		set(GETTEXT_LIBPATH ${GETTEXT}/lib)
 	endif()
 

Modified: trunk/blender/build_files/cmake/Modules/FindPythonLibsUnix.cmake
===================================================================
--- trunk/blender/build_files/cmake/Modules/FindPythonLibsUnix.cmake	2011-10-01 18:29:40 UTC (rev 40736)
+++ trunk/blender/build_files/cmake/Modules/FindPythonLibsUnix.cmake	2011-10-01 19:52:33 UTC (rev 40737)
@@ -34,68 +34,72 @@
   SET(PYTHON_ROOT_DIR $ENV{PYTHON_ROOT_DIR})
 ENDIF()
 
-IF(DEFINED PYTHON_VERSION)
-  SET(PYTHON_VERSION "${PYTHON_VERSION}" CACHE STRING "")
-ELSE()
-  SET(PYTHON_VERSION 3.2 CACHE STRING "")
-ENDIF()
+SET(PYTHON_VERSION 3.2 CACHE STRING "Python Version (major and minor only)")
 MARK_AS_ADVANCED(PYTHON_VERSION)
 
-SET(PYTHON_LINKFLAGS "-Xlinker -export-dynamic")
+
+# See: http://docs.python.org/extending/embedding.html#linking-requirements
+#      for why this is needed
+SET(PYTHON_LINKFLAGS "-Xlinker -export-dynamic" CACHE STRING "Linker flags for python")
 MARK_AS_ADVANCED(PYTHON_LINKFLAGS)
 
-SET(_python_ABI_FLAGS
-  "m;mu;u; "  # release
-  "md;mud;ud;d" # debug
-)
 
-STRING(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
+# only search for the dirs if we havn't already
+IF((NOT DEFINED PYTHON_INCLUDE_DIR) OR (NOT DEFINED PYTHON_LIBRARY))
 
-SET(_python_SEARCH_DIRS
-  ${PYTHON_ROOT_DIR}
-  "$ENV{HOME}/py${_PYTHON_VERSION_NO_DOTS}"
-  "/opt/py${_PYTHON_VERSION_NO_DOTS}"
-)
+  SET(_python_ABI_FLAGS
+    "m;mu;u; "    # release
+    "md;mud;ud;d" # debug
+  )
 
-FOREACH(_CURRENT_ABI_FLAGS ${_python_ABI_FLAGS})
-  #IF(CMAKE_BUILD_TYPE STREQUAL Debug)
-  #  SET(_CURRENT_ABI_FLAGS "d${_CURRENT_ABI_FLAGS}")
-  #ENDIF()
-  STRING(REPLACE " " "" _CURRENT_ABI_FLAGS ${_CURRENT_ABI_FLAGS})
+  STRING(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
 
-  FIND_PATH(PYTHON_INCLUDE_DIR
-    NAMES
-      Python.h
-    HINTS
-      ${_python_SEARCH_DIRS}
-    PATH_SUFFIXES
-      include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
+  SET(_python_SEARCH_DIRS
+    ${PYTHON_ROOT_DIR}
+    "$ENV{HOME}/py${_PYTHON_VERSION_NO_DOTS}"
+    "/opt/py${_PYTHON_VERSION_NO_DOTS}"
   )
 
-  FIND_LIBRARY(PYTHON_LIBRARY
-    NAMES
-      "python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}"
-    HINTS
-      ${_python_SEARCH_DIRS}
-    PATH_SUFFIXES
-      lib64 lib
-  )
+  FOREACH(_CURRENT_ABI_FLAGS ${_python_ABI_FLAGS})
+    #IF(CMAKE_BUILD_TYPE STREQUAL Debug)
+    #  SET(_CURRENT_ABI_FLAGS "d${_CURRENT_ABI_FLAGS}")
+    #ENDIF()
+    STRING(REPLACE " " "" _CURRENT_ABI_FLAGS ${_CURRENT_ABI_FLAGS})
 
-  IF(PYTHON_LIBRARY AND PYTHON_INCLUDE_DIR)
-    break()
-  ELSE()
-    # ensure we dont find values from 2 different ABI versions
-    UNSET(PYTHON_INCLUDE_DIR CACHE)
-    UNSET(PYTHON_LIBRARY CACHE)
-  ENDIF()
-ENDFOREACH()
+    FIND_PATH(PYTHON_INCLUDE_DIR
+      NAMES
+        Python.h
+      HINTS
+        ${_python_SEARCH_DIRS}
+      PATH_SUFFIXES
+        include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
+    )
 
-UNSET(_CURRENT_ABI_FLAGS)
-UNSET(_CURRENT_PATH)
+    FIND_LIBRARY(PYTHON_LIBRARY
+      NAMES
+        "python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}"
+      HINTS
+        ${_python_SEARCH_DIRS}
+      PATH_SUFFIXES
+        lib64 lib
+    )
 
-UNSET(_python_ABI_FLAGS)
-UNSET(_python_SEARCH_DIRS)
+    IF(PYTHON_LIBRARY AND PYTHON_INCLUDE_DIR)
+      break()
+    ELSE()
+      # ensure we dont find values from 2 different ABI versions
+      UNSET(PYTHON_INCLUDE_DIR CACHE)
+      UNSET(PYTHON_LIBRARY CACHE)
+    ENDIF()
+  ENDFOREACH()
 
+  UNSET(_CURRENT_ABI_FLAGS)
+  UNSET(_CURRENT_PATH)
+
+  UNSET(_python_ABI_FLAGS)
+  UNSET(_python_SEARCH_DIRS)
+ENDIF()
+
 # handle the QUIETLY and REQUIRED arguments and SET PYTHONLIBSUNIX_FOUND to TRUE IF 
 # all listed variables are TRUE
 INCLUDE(FindPackageHandleStandardArgs)

Modified: trunk/blender/build_files/cmake/macros.cmake
===================================================================
--- trunk/blender/build_files/cmake/macros.cmake	2011-10-01 18:29:40 UTC (rev 40736)
+++ trunk/blender/build_files/cmake/macros.cmake	2011-10-01 19:52:33 UTC (rev 40737)
@@ -235,7 +235,7 @@
 	endif()
 
 	if(WITH_INTERNATIONAL)
-		target_link_libraries(${target} ${GETTEXT_LIB})
+		target_link_libraries(${target} ${GETTEXT_LIBRARIES})
 
 		if(WIN32 AND NOT UNIX)
 			target_link_libraries(${target} ${ICONV_LIBRARIES})
@@ -343,18 +343,17 @@
 		set(${_sse2_flags} "-xSSE2")		
 	else()
 		message(WARNING "SSE flags for this compiler: '${CMAKE_C_COMPILER_ID}' not known")
-		set(_sse_flags)
-		set(_sse2_flags)
+		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()
+	set(CMAKE_REQUIRED_FLAGS "${${_sse_flags}} ${${_sse2_flags}}")
 
-	if(NOT DEFINED ${SUPPORT_SSE_BUILD})
+	if(NOT DEFINED SUPPORT_SSE_BUILD)
+		# result cached
 		check_c_source_runs("
 			#include <xmmintrin.h>
-			int main() { __m128 v = _mm_setzero_ps(); return 0; }"
+			int main(void) { __m128 v = _mm_setzero_ps(); return 0; }"
 		SUPPORT_SSE_BUILD)
 
 		if(SUPPORT_SSE_BUILD)
@@ -362,13 +361,13 @@
 		else()
 			message(STATUS "SSE Support: missing.")
 		endif()
-		set(${SUPPORT_SSE_BUILD} ${SUPPORT_SSE_BUILD} CACHE INTERNAL "SSE Test")
 	endif()
 
-	if(NOT DEFINED ${SUPPORT_SSE2_BUILD})
+	if(NOT DEFINED SUPPORT_SSE2_BUILD)
+		# result cached
 		check_c_source_runs("
 			#include <emmintrin.h>
-			int main() { __m128d v = _mm_setzero_pd(); return 0; }"
+			int main(void) { __m128d v = _mm_setzero_pd(); return 0; }"
 		SUPPORT_SSE2_BUILD)
 
 		if(SUPPORT_SSE2_BUILD)
@@ -376,9 +375,9 @@
 		else()
 			message(STATUS "SSE2 Support: missing.")
 		endif()
-		set(${SUPPORT_SSE2_BUILD} ${SUPPORT_SSE2_BUILD} CACHE INTERNAL "SSE2 Test")
 	endif()
 
+	unset(CMAKE_REQUIRED_FLAGS)
 endmacro()
 
 # when we have warnings as errors applied globally this

Modified: trunk/blender/source/blender/blenfont/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/blenfont/CMakeLists.txt	2011-10-01 18:29:40 UTC (rev 40736)
+++ trunk/blender/source/blender/blenfont/CMakeLists.txt	2011-10-01 19:52:33 UTC (rev 40737)
@@ -53,7 +53,7 @@
 
 if(WITH_INTERNATIONAL)
 	list(APPEND INC_SYS
-		${GETTEXT_INC}
+		${GETTEXT_INCLUDE_DIRS}
 	)
 	add_definitions(-DWITH_INTERNATIONAL)
 endif()




More information about the Bf-blender-cvs mailing list