diff options
author | Michał Górny <mgorny@gentoo.org> | 2022-02-04 15:28:48 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2022-02-09 09:43:43 +0100 |
commit | d918d2e7cb96b5cbb4aab5278acd5e511d52b9e4 (patch) | |
tree | 65b9a2626012b0e17af6c2411cd5e4637b63cb17 /eclass | |
parent | python-any-r1.eclass: Move EPYTHON validity check to python_setup() (diff) | |
download | gentoo-d918d2e7cb96b5cbb4aab5278acd5e511d52b9e4.tar.gz gentoo-d918d2e7cb96b5cbb4aab5278acd5e511d52b9e4.tar.bz2 gentoo-d918d2e7cb96b5cbb4aab5278acd5e511d52b9e4.zip |
python-utils-r1.eclass: Add function to run python_check_deps()
Add a function encompassing the common logic to run python_check_deps()
from python-any-r1 and python-r1.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/python-any-r1.eclass | 32 | ||||
-rw-r--r-- | eclass/python-r1.eclass | 7 | ||||
-rw-r--r-- | eclass/python-utils-r1.eclass | 20 |
3 files changed, 25 insertions, 34 deletions
diff --git a/eclass/python-any-r1.eclass b/eclass/python-any-r1.eclass index 4c832384ed7a..8d3af399b4be 100644 --- a/eclass/python-any-r1.eclass +++ b/eclass/python-any-r1.eclass @@ -271,31 +271,6 @@ python_gen_any_dep() { echo "|| ( ${out})" } -# @FUNCTION: _python_EPYTHON_supported -# @USAGE: <epython> -# @INTERNAL -# @DESCRIPTION: -# Check whether the specified implementation is supported by package -# (specified in PYTHON_COMPAT). Calls python_check_deps() if declared. -_python_EPYTHON_supported() { - debug-print-function ${FUNCNAME} "${@}" - - local EPYTHON=${1} - local i=${EPYTHON/./_} - - if python_is_installed "${i}"; then - if declare -f python_check_deps >/dev/null; then - local PYTHON_USEDEP="python_targets_${i}(-)" - local PYTHON_SINGLE_USEDEP="python_single_target_${i}(-)" - python_check_deps - return ${?} - fi - - return 0 - fi - return 1 -} - # @FUNCTION: python_setup # @DESCRIPTION: # Determine what the best installed (and supported) Python @@ -330,7 +305,7 @@ python_setup() { einfo "EPYTHON (${EPYTHON}) not supported by the package" elif ! has "${impl}" "${_PYTHON_ALL_IMPLS[@]}"; then ewarn "Invalid EPYTHON: ${EPYTHON}" - elif _python_EPYTHON_supported "${EPYTHON}"; then + elif _python_run_check_deps "${impl}"; then _python_export EPYTHON PYTHON _python_wrapper_setup einfo "Using ${EPYTHON} to build" @@ -341,8 +316,9 @@ python_setup() { # fallback to best installed impl. # (reverse iteration over _PYTHON_SUPPORTED_IMPLS) for (( i = ${#_PYTHON_SUPPORTED_IMPLS[@]} - 1; i >= 0; i-- )); do - _python_export "${_PYTHON_SUPPORTED_IMPLS[i]}" EPYTHON PYTHON - if _python_EPYTHON_supported "${EPYTHON}"; then + local impl=${_PYTHON_SUPPORTED_IMPLS[i]} + _python_export "${impl}" EPYTHON PYTHON + if _python_run_check_deps "${impl}"; then _python_wrapper_setup einfo "Using ${EPYTHON} to build" return diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass index f9a9e9465b40..469c3014abfb 100644 --- a/eclass/python-r1.eclass +++ b/eclass/python-r1.eclass @@ -740,12 +740,7 @@ python_setup() { # if python_check_deps() is declared, switch into any-of mode if [[ ${has_check_deps} ]]; then - # first check if the interpreter is installed - python_is_installed "${impl}" || continue - # then run python_check_deps - local PYTHON_USEDEP="python_targets_${impl}(-)" - local PYTHON_SINGLE_USEDEP="python_single_target_${impl}(-)" - python_check_deps || continue + _python_run_check_deps "${impl}" || continue fi found=1 diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index c8367f8065f4..f8c0c00ce919 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -1368,5 +1368,25 @@ eunittest() { return ${?} } +# @FUNCTION: _python_run_check_deps +# @INTERNAL +# @USAGE: <impl> +# @DESCRIPTION: +# Verify whether <impl> is an acceptable choice to run any-r1 style +# code. Checks whether the interpreter is installed, runs +# python_check_deps() if declared. +_python_run_check_deps() { + debug-print-function ${FUNCNAME} "${@}" + + local impl=${1} + + python_is_installed "${impl}" || return 1 + declare -f python_check_deps >/dev/null || return 0 + + local PYTHON_USEDEP="python_targets_${impl}(-)" + local PYTHON_SINGLE_USEDEP="python_single_target_${impl}(-)" + python_check_deps +} + _PYTHON_UTILS_R1=1 fi |