commit:     8c99a0fa34decdf32e32766d18386675ee7b84ae
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  6 22:21:37 2015 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov  7 09:12:23 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c99a0fa

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

Obtain the Python include directory using the 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.

 eclass/python-utils-r1.eclass | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index a80bdf4..911a1fd 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -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
@@ -273,21 +274,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 sysconfig; print(sysconfig.get_path("include"))')
                                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

Reply via email to