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:
authorCampbell Barton <ideasman42@gmail.com>2011-06-18 19:53:47 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-06-18 19:53:47 +0400
commit2c68bdb03e47a3a606fd2d57b703a65378f98897 (patch)
tree4a269e137b837de76d639b7997358e45e1dcf96f /build_files/cmake/Modules
parent5e59d0c8bbeafec203770f81755d04c526f98376 (diff)
cmake: make python search into a find package module.
Diffstat (limited to 'build_files/cmake/Modules')
-rw-r--r--build_files/cmake/Modules/FindPythonLibsUnix.cmake88
1 files changed, 88 insertions, 0 deletions
diff --git a/build_files/cmake/Modules/FindPythonLibsUnix.cmake b/build_files/cmake/Modules/FindPythonLibsUnix.cmake
new file mode 100644
index 00000000000..729771f0a52
--- /dev/null
+++ b/build_files/cmake/Modules/FindPythonLibsUnix.cmake
@@ -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()