[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37620] trunk/blender: cmake: make python search into a find package module.

Campbell Barton ideasman42 at gmail.com
Sat Jun 18 17:53:48 CEST 2011


Revision: 37620
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37620
Author:   campbellbarton
Date:     2011-06-18 15:53:47 +0000 (Sat, 18 Jun 2011)
Log Message:
-----------
cmake: make python search into a find package module.

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt

Added Paths:
-----------
    trunk/blender/build_files/cmake/Modules/FindPythonLibsUnix.cmake

Removed Paths:
-------------
    trunk/blender/build_files/cmake/FindPythonLibsUnix.cmake

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2011-06-18 15:15:31 UTC (rev 37619)
+++ trunk/blender/CMakeLists.txt	2011-06-18 15:53:47 UTC (rev 37620)
@@ -317,16 +317,9 @@
 		# No way to set py32. remove for now.
 		# find_package(PythonLibs)
 
-		# defines...
-		
-		#  PYTHON_VERSION
-		#  PYTHON_INCLUDE_DIRS
-		#  PYTHON_LIBRARY
-		#  PYTHON_LIBPATH
-		#  PYTHON_LINKFLAGS
-
-		include(build_files/cmake/FindPythonLibsUnix.cmake)
-
+		# Use our own instead, since wothout py is such a rare case,
+		# require this package
+		find_package(PythonLibsUnix REQUIRED)
 	endif()
 
 	if(WITH_SDL)

Deleted: trunk/blender/build_files/cmake/FindPythonLibsUnix.cmake
===================================================================
--- trunk/blender/build_files/cmake/FindPythonLibsUnix.cmake	2011-06-18 15:15:31 UTC (rev 37619)
+++ trunk/blender/build_files/cmake/FindPythonLibsUnix.cmake	2011-06-18 15:53:47 UTC (rev 37620)
@@ -1,103 +0,0 @@
-# - Find python libraries
-#
-#  PYTHON_VERSION
-#  PYTHON_INCLUDE_DIRS
-#  PYTHON_LIBRARY
-#  PYTHON_LIBPATH
-#  PYTHON_LINKFLAGS
-#  PYTHON_ROOT_DIR, The base directory to search for Python.
-#                   This can also be an environment variable.
-
-#=============================================================================
-
-# If PYTHON_ROOT_DIR was defined in the environment, use it.
-IF(NOT PYTHON_ROOT_DIR AND NOT $ENV{PYTHON_ROOT_DIR} STREQUAL "")
-  SET(PYTHON_ROOT_DIR $ENV{PYTHON_ROOT_DIR})
-ENDIF()
-
-
-set(PYTHON_VERSION 3.2 CACHE STRING "")
-mark_as_advanced(PYTHON_VERSION)
-
-set(PYTHON_LINKFLAGS "-Xlinker -export-dynamic")
-mark_as_advanced(PYTHON_LINKFLAGS)
-
-set(_python_ABI_FLAGS
-	"m;mu;u; ")
-
-string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
-
-set(_python_SEARCH_DIRS
-	${PYTHON_ROOT_DIR}
-	"$ENV{HOME}/py${_PYTHON_VERSION_NO_DOTS}"
-	"/opt/py${_PYTHON_VERSION_NO_DOTS}"
-	"/usr"
-	"/usr/local"
-)
-
-if(NOT DEFINED PYTHON_INCLUDE_DIRS OR
-   NOT DEFINED PYTHON_LIBRARY OR
-   NOT DEFINED PYTHON_LIBPATH)
-   
-	message(STATUS "Looking for include Python.h")
-
-	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})
-
-		find_path(PYTHON_INCLUDE_DIR
-			NAMES Python.h
-			HINTS ${_python_SEARCH_DIRS}
-			PATH_SUFFIXES include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
-		)
-
-		find_library(PYTHON_LIBRARY
-			NAMES "python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}"
-			HINTS ${_python_SEARCH_DIRS}
-			PATH_SUFFIXES lib64 lib
-		)
-
-		if((EXISTS ${PYTHON_LIBRARY}) AND (EXISTS ${PYTHON_INCLUDE_DIR}))
-			message(STATUS "Checking for header: ${PYTHON_INCLUDE_DIR} - found")
-			break()
-		else()
-			message(STATUS "Checking for header: ${PYTHON_INCLUDE_DIR}")
-		endif()
-
-		# ensure we dont find values from 2 different ABI versions
-		unset(PYTHON_INCLUDE_DIR CACHE)
-		unset(PYTHON_LIBRARY CACHE)
-	endforeach()
-
-	if((EXISTS ${PYTHON_LIBRARY}) AND (EXISTS ${PYTHON_INCLUDE_DIR}))
-		# Assign cache items
-		set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR} CACHE STRING "")
-		set(PYTHON_LIBRARY ${PYTHON_LIBRARY} CACHE STRING "")
-		# not used
-		# set(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "")
-
-		mark_as_advanced(
-			PYTHON_INCLUDE_DIRS
-			PYTHON_INCLUDE_DIR
-			PYTHON_LIBRARY
-		)
-	else()
-		message(FATAL_ERROR "Python not found")
-	endif()
-	
-	unset(_CURRENT_ABI_FLAGS)
-	unset(_CURRENT_PATH)
-endif()
-
-unset(_python_ABI_FLAGS)
-unset(_python_SEARCH_DIRS)
-
-#=============================================================================
-# now the python versions are found
-
-
-if(NOT EXISTS "${PYTHON_INCLUDE_DIRS}/Python.h")
-	message(FATAL_ERROR " Missing python header: ${PYTHON_INCLUDE_DIRS}/Python.h")
-endif()

Added: trunk/blender/build_files/cmake/Modules/FindPythonLibsUnix.cmake
===================================================================
--- trunk/blender/build_files/cmake/Modules/FindPythonLibsUnix.cmake	                        (rev 0)
+++ trunk/blender/build_files/cmake/Modules/FindPythonLibsUnix.cmake	2011-06-18 15:53:47 UTC (rev 37620)
@@ -0,0 +1,88 @@
+# - Find python libraries
+#
+#  PYTHON_VERSION
+#  PYTHON_INCLUDE_DIRS
+#  PYTHON_LIBRARY
+#  PYTHON_LIBPATH
+#  PYTHON_LINKFLAGS
+#  PYTHON_ROOT_DIR, The base directory to search for Python.
+#                   This can also be an environment variable.
+
+#=============================================================================
+
+# If PYTHON_ROOT_DIR was defined in the environment, use it.
+if(NOT PYTHON_ROOT_DIR AND NOT $ENV{PYTHON_ROOT_DIR} STREQUAL "")
+	set(PYTHON_ROOT_DIR $ENV{PYTHON_ROOT_DIR})
+endif()
+
+
+set(PYTHON_VERSION 3.2 CACHE STRING "")
+mark_as_advanced(PYTHON_VERSION)
+
+set(PYTHON_LINKFLAGS "-Xlinker -export-dynamic")
+mark_as_advanced(PYTHON_LINKFLAGS)
+
+set(_python_ABI_FLAGS
+	"m;mu;u; ")
+
+string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
+
+set(_python_SEARCH_DIRS
+	${PYTHON_ROOT_DIR}
+	"$ENV{HOME}/py${_PYTHON_VERSION_NO_DOTS}"
+	"/opt/py${_PYTHON_VERSION_NO_DOTS}"
+)
+
+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})
+
+	find_path(PYTHON_INCLUDE_DIR
+		NAMES Python.h
+		HINTS ${_python_SEARCH_DIRS}
+		PATH_SUFFIXES include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
+	)
+
+	find_library(PYTHON_LIBRARY
+		NAMES "python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}"
+		HINTS ${_python_SEARCH_DIRS}
+		PATH_SUFFIXES lib64 lib
+	)
+
+	if((EXISTS ${PYTHON_LIBRARY}) AND (EXISTS ${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)
+
+# handle the QUIETLY and REQUIRED arguments and set PYTHONLIBSUNIX_FOUND to TRUE if 
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonLibsUnix  DEFAULT_MSG
+    PYTHON_LIBRARY PYTHON_INCLUDE_DIR)
+
+
+if(PYTHONLIBSUNIX_FOUND)
+	# Assign cache items
+	set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR} CACHE STRING "")
+	set(PYTHON_LIBRARY ${PYTHON_LIBRARY} CACHE STRING "")
+	# not used
+	# set(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "")
+
+	mark_as_advanced(
+		PYTHON_INCLUDE_DIRS
+		PYTHON_INCLUDE_DIR
+		PYTHON_LIBRARY
+	)
+endif()




More information about the Bf-blender-cvs mailing list