blender/build_files/cmake/FindPythonLibsUnix.cmake

90 lines
2.4 KiB
CMake
Raw Normal View History

# - 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})
2011-06-14 00:24:50 +00:00
set(_Python_PATHS
2011-06-14 00:24:50 +00:00
"$ENV{HOME}/py${_PYTHON_VERSION_NO_DOTS}"
"/opt/py${_PYTHON_VERSION_NO_DOTS}"
"/usr"
"/usr/local"
)
2011-06-14 00:24:50 +00:00
if(NOT DEFINED PYTHON_INCLUDE_DIRS OR
NOT DEFINED PYTHON_LIBRARY OR
NOT DEFINED PYTHON_LIBPATH)
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()
unset(_Found_PYTHON_H)
unset(_Python_HEADER)
unset(_CURRENT_ABI_FLAGS)
unset(_CURRENT_PATH)
2011-06-14 00:24:50 +00:00
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 "")
endif()
unset(_Python_ABI_FLAGS)
unset(_Python_PATHS)
#=============================================================================
# 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()