Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
configure: bootstrap sphinx with mkvenv
When docs are explicitly requested, require Sphinx>=1.6.0. When docs are
explicitly disabled, don't bother to check for Sphinx at all. If docs
are set to "auto", attempt to locate Sphinx, but continue onward if it
wasn't located.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20230511035435.734312-22-jsnow@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
jnsnow authored and bonzini committed May 17, 2023
1 parent ce88790 commit dfe5b11
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 17 deletions.
21 changes: 19 additions & 2 deletions configure
Expand Up @@ -1115,9 +1115,9 @@ fi

# Suppress writing compiled files
python="$python -B"
mkvenv="$python ${source_path}/python/scripts/mkvenv.py"


if ! $python "${source_path}/python/scripts/mkvenv.py" ensure \
if ! $mkvenv ensure \
--dir "${source_path}/python/wheels" \
--diagnose "meson" \
"meson>=0.61.5" ;
Expand All @@ -1132,6 +1132,23 @@ fi

meson="$(cd pyvenv/bin; pwd)/meson"

# Conditionally ensure Sphinx is installed.

if test "$docs" != "disabled" ; then
if ! $mkvenv ensure \
--diagnose "sphinx-build" \
"sphinx>=1.6.0" sphinx-rtd-theme;
then
if test "$docs" = "enabled" ; then
exit 1
fi
echo "Sphinx not found/usable, disabling docs."
docs=disabled
else
docs=enabled
fi
fi

# Probe for ninja

if test -z "$ninja"; then
Expand Down
9 changes: 0 additions & 9 deletions docs/conf.py
Expand Up @@ -32,15 +32,6 @@
from distutils.version import LooseVersion
from sphinx.errors import ConfigError

# Make Sphinx fail cleanly if using an old Python, rather than obscurely
# failing because some code in one of our extensions doesn't work there.
# In newer versions of Sphinx this will display nicely; in older versions
# Sphinx will also produce a Python backtrace but at least the information
# gets printed...
if sys.version_info < (3,6):
raise ConfigError(
"QEMU requires a Sphinx that uses Python 3.6 or better\n")

# The per-manual conf.py will set qemu_docdir for a single-manual build;
# otherwise set it here if this is an entire-manual-set build.
# This is always the absolute path of the docs/ directory in the source tree.
Expand Down
2 changes: 1 addition & 1 deletion docs/meson.build
@@ -1,4 +1,4 @@
sphinx_build = find_program(get_option('sphinx_build'),
sphinx_build = find_program(fs.parent(python.full_path()) / 'sphinx-build',
required: get_option('docs'))

# Check if tools are available to build documentation.
Expand Down
2 changes: 0 additions & 2 deletions meson_options.txt
Expand Up @@ -12,8 +12,6 @@ option('pkgversion', type : 'string', value : '',
description: 'use specified string as sub-version of the package')
option('smbd', type : 'string', value : '',
description: 'Path to smbd for slirp networking')
option('sphinx_build', type : 'string', value : 'sphinx-build',
description: 'Use specified sphinx-build for building document')
option('iasl', type : 'string', value : '',
description: 'Path to ACPI disassembler')
option('tls_priority', type : 'string', value : 'NORMAL',
Expand Down
3 changes: 0 additions & 3 deletions scripts/meson-buildoptions.sh
Expand Up @@ -57,8 +57,6 @@ meson_options_help() {
printf "%s\n" ' --localedir=VALUE Locale data directory [share/locale]'
printf "%s\n" ' --localstatedir=VALUE Localstate data directory [/var/local]'
printf "%s\n" ' --mandir=VALUE Manual page directory [share/man]'
printf "%s\n" ' --sphinx-build=VALUE Use specified sphinx-build for building document'
printf "%s\n" ' [sphinx-build]'
printf "%s\n" ' --sysconfdir=VALUE Sysconf data directory [etc]'
printf "%s\n" ' --tls-priority=VALUE Default TLS protocol/cipher priority string'
printf "%s\n" ' [NORMAL]'
Expand Down Expand Up @@ -425,7 +423,6 @@ _meson_option_parse() {
--disable-sndio) printf "%s" -Dsndio=disabled ;;
--enable-sparse) printf "%s" -Dsparse=enabled ;;
--disable-sparse) printf "%s" -Dsparse=disabled ;;
--sphinx-build=*) quote_sh "-Dsphinx_build=$2" ;;
--enable-spice) printf "%s" -Dspice=enabled ;;
--disable-spice) printf "%s" -Dspice=disabled ;;
--enable-spice-protocol) printf "%s" -Dspice_protocol=enabled ;;
Expand Down

0 comments on commit dfe5b11

Please sign in to comment.