summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2015-11-06 23:41:52 +0100
committerMichał Górny <mgorny@gentoo.org>2015-11-11 11:21:17 +0100
commite0d0c114862a731d3a10cab621e1070728b8ec5f (patch)
tree1e5e4a94371105095a593e76636729fc3a5932c8 /eclass/python-utils-r1.eclass
parentpython-utils-r1.eclass: Obtain include directory from the interpreter (diff)
downloadgentoo-e0d0c114862a731d3a10cab621e1070728b8ec5f.tar.gz
gentoo-e0d0c114862a731d3a10cab621e1070728b8ec5f.tar.bz2
gentoo-e0d0c114862a731d3a10cab621e1070728b8ec5f.zip
python-utils-r1.eclass: Obtain library path from the interpreter
Obtain library path as concatenation of LIBDIR and LDLIBRARY config variables (from sysconfig module) rather than hardcoding it in the eclass. This improves maintainability and fixes compatibility with ABIFLAGS-enabled Python 3.3+.
Diffstat (limited to 'eclass/python-utils-r1.eclass')
-rw-r--r--eclass/python-utils-r1.eclass21
1 files changed, 7 insertions, 14 deletions
diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index a0274f60616..ec85d8aee61 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -151,7 +151,8 @@ _python_impl_supported() {
# The path to Python library.
#
# Set and exported on request using python_export().
-# Valid only for CPython.
+# Valid only for CPython. Requires a proper build-time dependency
+# on the Python implementation.
#
# Example value:
# @CODE
@@ -289,20 +290,12 @@ python_export() {
fi
;;
PYTHON_LIBPATH)
- local libname
- case "${impl}" in
- python*)
- libname=lib${impl}
- ;;
- *)
- die "${impl} lacks a dynamic library"
- ;;
- esac
-
- local path=${EPREFIX}/usr/$(get_libdir)
-
- export PYTHON_LIBPATH=${path}/${libname}$(get_libname)
+ export PYTHON_LIBPATH=$("${PYTHON}" -c 'import os.path, sysconfig; print(os.path.join(sysconfig.get_config_var("LIBDIR"), sysconfig.get_config_var("LDLIBRARY")) if sysconfig.get_config_var("LDLIBRARY") else "")')
debug-print "${FUNCNAME}: PYTHON_LIBPATH = ${PYTHON_LIBPATH}"
+
+ if [[ ! ${PYTHON_LIBPATH} ]]; then
+ die "${impl} lacks a (usable) dynamic library"
+ fi
;;
PYTHON_CFLAGS)
local val