summaryrefslogtreecommitdiff
path: root/eclass/docs.eclass
diff options
context:
space:
mode:
authorAndrew Ammerlaan <andrewammerlaan@gentoo.org>2023-07-14 09:48:22 +0200
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2023-07-17 10:03:10 +0200
commit3a6c1dbbb68093c139b9fdb0420cf5e913c7cfe6 (patch)
treedd98c0456e52fceef4680a4c0f1b43c6fc13f538 /eclass/docs.eclass
parentded4355b6b18b1c982d17c9f0e6f4c6f3d276715 (diff)
downloadgentoo-3a6c1dbbb68093c139b9fdb0420cf5e913c7cfe6.tar.gz
gentoo-3a6c1dbbb68093c139b9fdb0420cf5e913c7cfe6.tar.bz2
gentoo-3a6c1dbbb68093c139b9fdb0420cf5e913c7cfe6.zip
docs.eclass: define missing python_check_deps()
and remove some code duplication Closes: https://bugs.gentoo.org/910278 Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Diffstat (limited to 'eclass/docs.eclass')
-rw-r--r--eclass/docs.eclass59
1 files 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")