Update to make it work with new debian-like py3.3 packages. A bit hackish (this arch-dependent stuff makes things a bit complex), and probably only working for amd64 arch, but at least should not create any regression...
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
# This module defines
|
# This module defines
|
||||||
# PYTHON_VERSION
|
# PYTHON_VERSION
|
||||||
# PYTHON_INCLUDE_DIRS
|
# PYTHON_INCLUDE_DIRS
|
||||||
|
# PYTHON_INCLUDE_CONFIG_DIRS
|
||||||
# PYTHON_LIBRARIES
|
# PYTHON_LIBRARIES
|
||||||
# PYTHON_LIBPATH, Used for installation
|
# PYTHON_LIBPATH, Used for installation
|
||||||
# PYTHON_LINKFLAGS
|
# PYTHON_LINKFLAGS
|
||||||
@@ -46,17 +47,25 @@ MARK_AS_ADVANCED(PYTHON_LINKFLAGS)
|
|||||||
|
|
||||||
# if the user passes these defines as args, we dont want to overwrite
|
# if the user passes these defines as args, we dont want to overwrite
|
||||||
SET(_IS_INC_DEF OFF)
|
SET(_IS_INC_DEF OFF)
|
||||||
|
SET(_IS_INC_CONF_DEF OFF)
|
||||||
SET(_IS_LIB_DEF OFF)
|
SET(_IS_LIB_DEF OFF)
|
||||||
|
SET(_IS_LIB_PATH_DEF OFF)
|
||||||
IF(DEFINED PYTHON_INCLUDE_DIR)
|
IF(DEFINED PYTHON_INCLUDE_DIR)
|
||||||
SET(_IS_INC_DEF ON)
|
SET(_IS_INC_DEF ON)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
IF(DEFINED PYTHON_INCLUDE_CONFIG_DIR)
|
||||||
|
SET(_IS_INC_CONF_DEF ON)
|
||||||
|
ENDIF()
|
||||||
IF(DEFINED PYTHON_LIBRARY)
|
IF(DEFINED PYTHON_LIBRARY)
|
||||||
SET(_IS_LIB_DEF ON)
|
SET(_IS_LIB_DEF ON)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
IF(DEFINED PYTHON_LIBPATH)
|
||||||
|
SET(_IS_LIB_PATH_DEF ON)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
# only search for the dirs if we havn't already
|
# only search for the dirs if we havn't already
|
||||||
IF((NOT _IS_INC_DEF) OR (NOT _IS_LIB_DEF))
|
IF((NOT _IS_INC_DEF) OR (NOT _IS_INC_CONF_DEF) OR (NOT _IS_LIB_DEF) OR (NOT _IS_LIB_PATH_DEF))
|
||||||
|
|
||||||
SET(_python_ABI_FLAGS
|
SET(_python_ABI_FLAGS
|
||||||
"m;mu;u; " # release
|
"m;mu;u; " # release
|
||||||
@@ -85,6 +94,19 @@ IF((NOT _IS_INC_DEF) OR (NOT _IS_LIB_DEF))
|
|||||||
${_python_SEARCH_DIRS}
|
${_python_SEARCH_DIRS}
|
||||||
PATH_SUFFIXES
|
PATH_SUFFIXES
|
||||||
include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
|
include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
|
||||||
|
include/x86_64-linux-gnu/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT DEFINED PYTHON_INCLUDE_CONFIG_DIR)
|
||||||
|
FIND_PATH(PYTHON_INCLUDE_CONFIG_DIR
|
||||||
|
NAMES
|
||||||
|
pyconfig.h
|
||||||
|
HINTS
|
||||||
|
${_python_SEARCH_DIRS}
|
||||||
|
PATH_SUFFIXES
|
||||||
|
include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
|
||||||
|
include/x86_64-linux-gnu/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
|
||||||
)
|
)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
@@ -99,16 +121,33 @@ IF((NOT _IS_INC_DEF) OR (NOT _IS_LIB_DEF))
|
|||||||
)
|
)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(PYTHON_LIBRARY AND PYTHON_INCLUDE_DIR)
|
IF(NOT DEFINED PYTHON_LIBPATH)
|
||||||
|
FIND_PATH(PYTHON_LIBPATH
|
||||||
|
NAMES
|
||||||
|
"python${PYTHON_VERSION}/abc.py" # This is a bit hackish! :/
|
||||||
|
HINTS
|
||||||
|
${_python_SEARCH_DIRS}
|
||||||
|
PATH_SUFFIXES
|
||||||
|
lib64 lib
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(PYTHON_LIBRARY AND PYTHON_LIBPATH AND PYTHON_INCLUDE_DIR AND PYTHON_INCLUDE_CONFIG_DIR)
|
||||||
break()
|
break()
|
||||||
ELSE()
|
ELSE()
|
||||||
# ensure we dont find values from 2 different ABI versions
|
# ensure we dont find values from 2 different ABI versions
|
||||||
IF(NOT _IS_INC_DEF)
|
IF(NOT _IS_INC_DEF)
|
||||||
UNSET(PYTHON_INCLUDE_DIR CACHE)
|
UNSET(PYTHON_INCLUDE_DIR CACHE)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
IF(NOT _IS_INC_CONF_DEF)
|
||||||
|
UNSET(PYTHON_INCLUDE_CONFIG_DIR CACHE)
|
||||||
|
ENDIF()
|
||||||
IF(NOT _IS_LIB_DEF)
|
IF(NOT _IS_LIB_DEF)
|
||||||
UNSET(PYTHON_LIBRARY CACHE)
|
UNSET(PYTHON_LIBRARY CACHE)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
IF(NOT _IS_LIB_PATH_DEF)
|
||||||
|
UNSET(PYTHON_LIBPATH CACHE)
|
||||||
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDFOREACH()
|
ENDFOREACH()
|
||||||
|
|
||||||
@@ -120,22 +159,25 @@ IF((NOT _IS_INC_DEF) OR (NOT _IS_LIB_DEF))
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
UNSET(_IS_INC_DEF)
|
UNSET(_IS_INC_DEF)
|
||||||
|
UNSET(_IS_INC_CONF_DEF)
|
||||||
UNSET(_IS_LIB_DEF)
|
UNSET(_IS_LIB_DEF)
|
||||||
|
UNSET(_IS_LIB_PATH_DEF)
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and SET PYTHONLIBSUNIX_FOUND to TRUE IF
|
# handle the QUIETLY and REQUIRED arguments and SET PYTHONLIBSUNIX_FOUND to TRUE IF
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonLibsUnix DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonLibsUnix DEFAULT_MSG
|
||||||
PYTHON_LIBRARY PYTHON_INCLUDE_DIR)
|
PYTHON_LIBRARY PYTHON_LIBPATH PYTHON_INCLUDE_DIR PYTHON_INCLUDE_CONFIG_DIR)
|
||||||
|
|
||||||
|
|
||||||
IF(PYTHONLIBSUNIX_FOUND)
|
IF(PYTHONLIBSUNIX_FOUND)
|
||||||
# Assign cache items
|
# Assign cache items
|
||||||
SET(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR})
|
SET(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR} ${PYTHON_INCLUDE_CONFIG_DIR})
|
||||||
SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY})
|
SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY})
|
||||||
|
|
||||||
# we need this for installation
|
# we need this for installation
|
||||||
GET_FILENAME_COMPONENT(PYTHON_LIBPATH ${PYTHON_LIBRARY} PATH)
|
# XXX No more valid with debian-like py3.3 packages...
|
||||||
|
# GET_FILENAME_COMPONENT(PYTHON_LIBPATH ${PYTHON_LIBRARY} PATH)
|
||||||
|
|
||||||
# not used
|
# not used
|
||||||
# SET(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "")
|
# SET(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "")
|
||||||
@@ -143,5 +185,6 @@ ENDIF()
|
|||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
PYTHON_INCLUDE_DIR
|
PYTHON_INCLUDE_DIR
|
||||||
|
PYTHON_INCLUDE_CONFIG_DIR
|
||||||
PYTHON_LIBRARY
|
PYTHON_LIBRARY
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user