diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-03-10 03:25:35 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-03-10 03:25:35 +0300 |
commit | f3a455fd22f3566aedd6a6b8c70d4a209211db06 (patch) | |
tree | 07841541a274c23e11ee09dcb1dd9df8a5bb3477 /build_files | |
parent | 2336612075220b825dd56575f8a0513e23cf593d (diff) |
CMake should find python now without manual options being set on linux.
cmake on *nix detects python ABI flags for debug and release mode.
searches /usr /usr/local /opt/py32
Diffstat (limited to 'build_files')
-rw-r--r-- | build_files/cmake/FindPythonLibsUnix.cmake | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/build_files/cmake/FindPythonLibsUnix.cmake b/build_files/cmake/FindPythonLibsUnix.cmake new file mode 100644 index 00000000000..9b25e4b79d4 --- /dev/null +++ b/build_files/cmake/FindPythonLibsUnix.cmake @@ -0,0 +1,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 + "/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() |