I've renamed PYTHON_DEPEND to avoid confusion with python.eclass. --- gx86/eclass/python-distutils-ng.eclass | 20 ++----------------- gx86/eclass/python-r1.eclass | 35 ++++++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 20 deletions(-)
diff --git a/gx86/eclass/python-distutils-ng.eclass b/gx86/eclass/python-distutils-ng.eclass index 5df965c..34717aa 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_DEPS} +DEPEND=${PYTHON_DEPS} _PACKAGE_SPECIFIC_S="${S#${WORKDIR}/}" diff --git a/gx86/eclass/python-r1.eclass b/gx86/eclass/python-r1.eclass index 18f9246..957db68 100644 --- a/gx86/eclass/python-r1.eclass +++ b/gx86/eclass/python-r1.eclass @@ -40,14 +40,45 @@ _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_DEPS +# @DESCRIPTION: +# This is an eclass-generated Python dependency string for all +# implementations listed in PYTHON_COMPAT. It should be used +# in RDEPEND and/or DEPEND like: +# +# @CODE +# RDEPEND="${PYTHON_DEPS} +# dev-foo/mydep" +# DEPEND="${RDEPEND}" +# @CODE + PYTHON_COMPAT=( ${PYTHON_COMPAT[@]} ) _python_set_globals() { IUSE=${PYTHON_COMPAT[@]/#/python_targets_} REQUIRED_USE="|| ( ${IUSE} )" + + PYTHON_DEPS= + 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_DEPS+=" python_targets_${i}? ( ${d}:${v/_/.} )" + done } _python_set_globals -- 1.7.12