Welcome to mirror list, hosted at ThFree Co, Russian Federation.

FindPythonLibsUnix.cmake « cmake « build_files - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 0752de4ce3cd18a93514b2c029ab62bf2e5946cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# - Find python libraries
#
#  PYTHON_VERSION
#  PYTHON_INCLUDE_DIRS
#  PYTHON_LIBRARY
#  PYTHON_LIBPATH
#  PYTHON_LINKFLAGS

#=============================================================================

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_PATHS
  "$ENV{HOME}/py${_PYTHON_VERSION_NO_DOTS}" "/opt/py${_PYTHON_VERSION_NO_DOTS}" "/usr" "/usr/local")

if(NOT DEFINED PYTHON_INCLUDE_DIRS)
	message(STATUS "Looking for include Python.h")
	set(_Found_PYTHON_H OFF)

	foreach(_CURRENT_PATH ${_Python_PATHS})
		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})

			set(_Python_HEADER "${_CURRENT_PATH}/include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}/Python.h")

			if(EXISTS ${_Python_HEADER})
				message(STATUS "Checking for header: ${_Python_HEADER} - found")
				set(_Found_PYTHON_H ON)
				set(PYTHON ${_CURRENT_PATH})
				set(PYTHON_ABI_FLAGS ${_CURRENT_ABI_FLAGS})
				break()
			else()
				message(STATUS "Checking for header: ${_Python_HEADER}")
			endif()
		endforeach()
		
		if(_Found_PYTHON_H)
			break()
		endif()
	endforeach()

	if(NOT _Found_PYTHON_H)
		message(FATAL_ERROR "Python.h not found")
	endif()
endif()

#=============================================================================
# now the python versions are found


set(PYTHON_INCLUDE_DIRS "${PYTHON}/include/python${PYTHON_VERSION}${PYTHON_ABI_FLAGS}" CACHE STRING "")
mark_as_advanced(PYTHON_INCLUDE_DIRS)
set(PYTHON_LIBRARY "python${PYTHON_VERSION}${PYTHON_ABI_FLAGS}" CACHE STRING "")
mark_as_advanced(PYTHON_LIBRARY)
set(PYTHON_LIBPATH ${PYTHON}/lib CACHE STRING "")
mark_as_advanced(PYTHON_LIBPATH)
# set(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "")

if(NOT EXISTS "${PYTHON_INCLUDE_DIRS}/Python.h")
	message(FATAL_ERROR " Missing python header: ${PYTHON_INCLUDE_DIRS}/Python.h")
endif()