commit: 3a6c1dbbb68093c139b9fdb0420cf5e913c7cfe6 Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> AuthorDate: Fri Jul 14 07:48:22 2023 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Mon Jul 17 08:03:10 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a6c1dbb
docs.eclass: define missing python_check_deps() and remove some code duplication Closes: https://bugs.gentoo.org/910278 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org> eclass/docs.eclass | 59 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/eclass/docs.eclass b/eclass/docs.eclass index da598226bfc0..1aa4937a6363 100644 --- a/eclass/docs.eclass +++ b/eclass/docs.eclass @@ -186,21 +186,36 @@ initialize_git_repo() { fi } -# @FUNCTION: python_append_deps +# @FUNCTION: _docs_set_python_deps # @INTERNAL # @DESCRIPTION: -# Appends [\${PYTHON_USEDEP}] to all dependencies -# for python based DOCS_BUILDERs such as mkdocs or -# sphinx. -python_append_deps() { +# Add python_gen_any_dep or python_gen_cond_dep +# to DOCS_DEPEND and define python_check_deps +_docs_set_python_deps() { debug-print-function ${FUNCNAME} - local temp + local deps=${@} + python_check_deps() { + use doc || return 0 + + local dep + for dep in ${deps[@]}; do + python_has_version "${dep}[${PYTHON_USEDEP}]" || + return 1 + done + } + + local deps_appended local dep - for dep in ${DOCS_DEPEND[@]}; do - temp+=" ${dep}[\${PYTHON_USEDEP}]" + for dep in ${deps[@]}; do + deps_appended+=" ${dep}[\${PYTHON_USEDEP}]" done - DOCS_DEPEND=${temp} + + if [[ ${_PYTHON_SINGLE_R1_ECLASS} ]]; then + DOCS_DEPEND=$(python_gen_cond_dep "${deps_appended}") + else + DOCS_DEPEND=$(python_gen_any_dep "${deps_appended}") + fi } # @FUNCTION: sphinx_deps @@ -212,8 +227,8 @@ sphinx_deps() { : "${DOCS_AUTODOC:=1}" - deps="dev-python/sphinx[\${PYTHON_USEDEP}] - ${DOCS_DEPEND}" + deps="dev-python/sphinx + ${DOCS_DEPEND}" if [[ ${DOCS_AUTODOC} == 0 ]]; then if [[ -n "${DOCS_DEPEND}" ]]; then die "${FUNCNAME}: do not set DOCS_AUTODOC to 0 if external plugins are used" @@ -221,11 +236,8 @@ sphinx_deps() { elif [[ ${DOCS_AUTODOC} != 0 && ${DOCS_AUTODOC} != 1 ]]; then die "${FUNCNAME}: DOCS_AUTODOC should be set to 0 or 1" fi - if [[ ${_PYTHON_SINGLE_R1_ECLASS} ]]; then - DOCS_DEPEND="$(python_gen_cond_dep "${deps}")" - else - DOCS_DEPEND="$(python_gen_any_dep "${deps}")" - fi + + _docs_set_python_deps ${deps} } # @FUNCTION: sphinx_compile @@ -276,19 +288,16 @@ mkdocs_deps() { : "${DOCS_AUTODOC:=0}" - deps="dev-python/mkdocs[\${PYTHON_USEDEP}] - ${DOCS_DEPEND}" + deps="dev-python/mkdocs + ${DOCS_DEPEND}" if [[ ${DOCS_AUTODOC} == 1 ]]; then - deps="dev-python/mkautodoc[\${PYTHON_USEDEP}] + deps="dev-python/mkautodoc ${deps}" elif [[ ${DOCS_AUTODOC} != 0 && ${DOCS_AUTODOC} != 1 ]]; then die "${FUNCNAME}: DOCS_AUTODOC should be set to 0 or 1" fi - if [[ ${_PYTHON_SINGLE_R1_ECLASS} ]]; then - DOCS_DEPEND="$(python_gen_cond_dep "${deps}")" - else - DOCS_DEPEND="$(python_gen_any_dep "${deps}")" - fi + + _docs_set_python_deps ${deps} } # @FUNCTION: mkdocs_compile @@ -404,11 +413,9 @@ IUSE+=" doc" # Call the correct setup function case ${DOCS_BUILDER} in "sphinx") - python_append_deps sphinx_deps ;; "mkdocs") - python_append_deps mkdocs_deps ;; "doxygen")