---
 gx86/eclass/python-distutils-ng.eclass | 20 ++------------------
 gx86/eclass/python-r1.eclass           | 28 ++++++++++++++++++++++++++--
 2 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/gx86/eclass/python-distutils-ng.eclass 
b/gx86/eclass/python-distutils-ng.eclass
index 5df965c..bffe563 100644
--- a/gx86/eclass/python-distutils-ng.eclass
+++ b/gx86/eclass/python-distutils-ng.eclass
@@ -74,24 +74,8 @@ _python-distutils-ng_get_binary_for_implementation() {
        esac
 }
 
-for impl in ${PYTHON_COMPAT[@]}; do
-       dep_str="${impl/_/.}"
-       case "${dep_str}" in
-               python?.?)
-                       dep_str="dev-lang/python:${dep_str: -3}" ;;
-               jython?.?)
-                       dep_str="dev-java/jython:${dep_str: -3}" ;;
-               pypy?.?)
-                       dep_str="dev-python/pypy:${dep_str: -3}" ;;
-               *)
-                       die "Unsupported implementation: ${impl}" ;;
-       esac
-       dep_str="python_targets_${impl}? ( ${dep_str} )"
-
-       RDEPEND="${RDEPEND} ${dep_str}"
-       DEPEND="${DEPEND} ${dep_str}"
-       unset dep_str
-done
+RDEPEND=${PYTHON_DEPEND}
+DEPEND=${PYTHON_DEPEND}
 
 _PACKAGE_SPECIFIC_S="${S#${WORKDIR}/}"
 
diff --git a/gx86/eclass/python-r1.eclass b/gx86/eclass/python-r1.eclass
index 18f9246..3017dd8 100644
--- a/gx86/eclass/python-r1.eclass
+++ b/gx86/eclass/python-r1.eclass
@@ -40,14 +40,38 @@ _PYTHON_ALL_IMPLS=(
 # a package supports. It must be set before the `inherit' call.
 # The default is to enable all implementations.
 #
-# PYTHON_COMPAT can be either a scalar or an array. If it's a scalar, the 
eclass
-# will implicitly convert it to an array.
+# PYTHON_COMPAT can be either a scalar or an array. If it's a scalar,
+# the eclass will implicitly convert it to an array.
 : ${PYTHON_COMPAT:=${_PYTHON_ALL_IMPLS[@]}}
 
+# @ECLASS-VARIABLE: PYTHON_DEPEND
+# @DESCRIPTION:
+# This is an eclass-generated Python dependency string for all
+# implementations listed in PYTHON_COMPAT.
+
 PYTHON_COMPAT=( ${PYTHON_COMPAT[@]} )
 
 _python_set_globals() {
        IUSE=${PYTHON_COMPAT[@]/#/python_targets_}
        REQUIRED_USE="|| ( ${IUSE} )"
+
+       PYTHON_DEPEND=
+       local i
+       for i in ${PYTHON_COMPAT[@]}; do
+               local d
+               case ${i} in
+                       python*)
+                               d='dev-lang/python';;
+                       jython*)
+                               d='dev-java/jython';;
+                       pypy*)
+                               d='dev-python/pypy';;
+                       *)
+                               die "Invalid implementation: ${i}"
+               esac
+
+               local v=${i##*[a-z]}
+               PYTHON_DEPEND+=" python_targets_${i}? ( ${d}:${v/_/.} )"
+       done
 }
 _python_set_globals
-- 
1.7.12


Reply via email to