python-utils-r1.eclass: Introduce a build_sphinx() helper
authorMichał Górny <mgorny@gentoo.org>
Thu, 21 Nov 2019 11:44:04 +0000 (12:44 +0100)
committerMichał Górny <mgorny@gentoo.org>
Mon, 25 Nov 2019 12:34:54 +0000 (13:34 +0100)
Introduce a helper to build HTML docs using Sphinx, providing for
Intersphinx cleanup and HTML_DOCS appending.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
eclass/python-utils-r1.eclass

index 44337c687aada4f351aae2f73991f2fb768a5dc4..4f3ac66f21503498b7089f65aeffc075559bba0b 100644 (file)
@@ -1343,6 +1343,31 @@ python_export_utf8_locale() {
        return 0
 }
 
+# @FUNCTION: build_sphinx
+# @USAGE: <directory>
+# @DESCRIPTION:
+# Build HTML documentation using dev-python/sphinx in the specified
+# <directory>.  Takes care of disabling Intersphinx and appending
+# to HTML_DOCS.
+#
+# If <directory> is relative to the current directory, care needs
+# to be taken to run einstalldocs from the same directory
+# (usually ${S}).
+build_sphinx() {
+       debug-print-function ${FUNCNAME} "${@}"
+       [[ ${#} -eq 1 ]] || die "${FUNCNAME} takes 1 arg: <directory>"
+
+       local dir=${1}
+
+       sed -i -e 's:^intersphinx_mapping:disabled_&:' \
+               "${dir}"/conf.py || die
+       # not all packages include the Makefile in pypi tarball
+       sphinx-build -b html -d "${dir}"/_build/doctrees "${dir}" \
+               "${dir}"/_build/html || die
+
+       HTML_DOCS+=( "${dir}/_build/html/." )
+}
+
 # -- python.eclass functions --
 
 _python_check_dead_variables() {