1
# - Find the python include path
3
# This module determines where the python include file Python.h is,
4
# based on the current value of PYTHON_EXECUTABLE. This code sets the
7
# PYTHON_INCLUDE_PATH = path to where Python.h is found
11
# Obtain the candidate path for python include
12
EXECUTE_PROCESS(COMMAND
13
${PYTHON_EXECUTABLE} -c
14
"import sys; print sys.prefix + '/include/python' + sys.version[:3]"
15
OUTPUT_VARIABLE CANDIDATE
16
OUTPUT_STRIP_TRAILING_WHITESPACE
18
# Verify theat Python.h exists within the candidate path
19
IF(EXISTS "${CANDIDATE}")
20
IF(EXISTS ${CANDIDATE}/Python.h)
21
SET(PYTHON_INCLUDE_FOUND TRUE)
22
SET(PYTHON_INCLUDE_PATH ${CANDIDATE})
23
ENDIF(EXISTS ${CANDIDATE}/Python.h)
24
ENDIF(EXISTS "${CANDIDATE}")
25
# Obtain the candidate path for python library
26
EXECUTE_PROCESS(COMMAND
27
${PYTHON_EXECUTABLE} -c
28
"import sys; print 'python' + sys.version[:3]"
29
OUTPUT_VARIABLE PYVERSION
30
OUTPUT_STRIP_TRAILING_WHITESPACE
32
EXECUTE_PROCESS(COMMAND
33
${PYTHON_EXECUTABLE} -c
34
"import sys; print sys.prefix + '/lib/python' + sys.version[:3] + '/config'"
35
OUTPUT_VARIABLE CANDIDATE
36
OUTPUT_STRIP_TRAILING_WHITESPACE
38
# Verify theat Python.h exists within the candidate path
39
IF(EXISTS "${CANDIDATE}")
40
FOREACH(SUFFIX dll dylib so a)
41
SET(LIB_CANDIDATE ${CANDIDATE}/lib${PYVERSION}.${SUFFIX})
42
IF(EXISTS ${LIB_CANDIDATE})
43
SET(PYTHON_LIB_FOUND TRUE)
44
SET(PYTHON_LIBRARIES ${LIB_CANDIDATE})
46
ENDIF(EXISTS ${LIB_CANDIDATE})
48
ENDIF(EXISTS "${CANDIDATE}")
49
ENDIF(PYTHON_EXECUTABLE)
51
# Set any python variables that did not get set by the above logic
52
IF(PYTHON_INCLUDE_FOUND AND PYTHON_LIB_FOUND)
54
ELSE(PYTHON_INCLUDE_FOUND AND PYTHON_LIB_FOUND)
55
FIND_PACKAGE(PythonLibs)
56
ENDIF(PYTHON_INCLUDE_FOUND AND PYTHON_LIB_FOUND)