python-utils-r1.eclass: Obtain include directory from the interpreter

Obtain the Python include directory using the distutils.sysconfig module
of the Python interpreter rather than hardcoding values for it. This
makes the code more maintainable, and clears the way for re-enabling
ABIFLAGS on new Python versions.
This commit is contained in:
Michał Górny
2015-11-11 11:21:09 +01:00
parent 85b6221484
commit 6cdbddf775
2 changed files with 20 additions and 18 deletions
+7 -14
View File
@@ -138,6 +138,7 @@ _python_impl_supported() {
# The path to Python include directory.
#
# Set and exported on request using python_export().
# Requires a proper build-time dependency on the Python implementation.
#
# Example value:
# @CODE
@@ -279,21 +280,13 @@ python_export() {
debug-print "${FUNCNAME}: PYTHON_SITEDIR = ${PYTHON_SITEDIR}"
;;
PYTHON_INCLUDEDIR)
local dir
case "${impl}" in
python*)
dir=/usr/include/${impl}
;;
pypy|pypy3)
dir=/usr/$(get_libdir)/${impl}/include
;;
*)
die "${impl} lacks header files"
;;
esac
export PYTHON_INCLUDEDIR=${EPREFIX}${dir}
export PYTHON_INCLUDEDIR=$("${PYTHON}" -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_inc())')
debug-print "${FUNCNAME}: PYTHON_INCLUDEDIR = ${PYTHON_INCLUDEDIR}"
# Jython gives a non-existing directory
if [[ ! -d ${PYTHON_INCLUDEDIR} ]]; then
die "${impl} does not install any header files!"
fi
;;
PYTHON_LIBPATH)
local libname