# - Find python libraries # # PYTHON_VERSION # PYTHON_INCLUDE_DIRS # PYTHON_LIBRARIES # PYTHON_LIBPATH, Used for installation # 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; " # release "md;mud;ud" # debug ) 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(PYTHON_LIBRARY AND 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}) set(PYTHON_LIBRARIES ${PYTHON_LIBRARY}) # we need this for installation get_filename_component(PYTHON_LIBPATH ${PYTHON_LIBRARY} PATH) # not used # set(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "") mark_as_advanced( PYTHON_INCLUDE_DIR PYTHON_LIBRARY ) endif()