15329da6aSPeter Maydell# -*- coding: utf-8 -*- 25329da6aSPeter Maydell# 35329da6aSPeter Maydell# QEMU documentation build configuration file, created by 45329da6aSPeter Maydell# sphinx-quickstart on Thu Jan 31 16:40:14 2019. 55329da6aSPeter Maydell# 6f8cf7147SPeter Maydell# This config file can be used in one of two ways: 7f8cf7147SPeter Maydell# (1) as a common config file which is included by the conf.py 8f8cf7147SPeter Maydell# for each of QEMU's manuals: in this case sphinx-build is run multiple 9f8cf7147SPeter Maydell# times, once per subdirectory. 10f8cf7147SPeter Maydell# (2) as a top level conf file which will result in building all 11f8cf7147SPeter Maydell# the manuals into a single document: in this case sphinx-build is 12f8cf7147SPeter Maydell# run once, on the top-level docs directory. 13f8cf7147SPeter Maydell# 14f8cf7147SPeter Maydell# QEMU's makefiles take option (1), which allows us to install 15f8cf7147SPeter Maydell# only the ones the user cares about (in particular we don't want 16f8cf7147SPeter Maydell# to ship the 'devel' manual to end-users). 17f8cf7147SPeter Maydell# Third-party sites such as readthedocs.org will take option (2). 18f8cf7147SPeter Maydell# 19f8cf7147SPeter Maydell# 205329da6aSPeter Maydell# This file is execfile()d with the current directory set to its 215329da6aSPeter Maydell# containing dir. 225329da6aSPeter Maydell# 235329da6aSPeter Maydell# Note that not all possible configuration values are present in this 245329da6aSPeter Maydell# autogenerated file. 255329da6aSPeter Maydell# 265329da6aSPeter Maydell# All configuration values have a default; values that are commented out 275329da6aSPeter Maydell# serve to show the default. 285329da6aSPeter Maydell 29f8cf7147SPeter Maydellimport os 30f8cf7147SPeter Maydellimport sys 31758b617aSPeter Maydellimport sphinx 3273e6aec6SMarc-André Lureaufrom distutils.version import LooseVersion 33e22684e3SPeter Maydellfrom sphinx.errors import ConfigError 34758b617aSPeter Maydell 35758b617aSPeter Maydell# Make Sphinx fail cleanly if using an old Python, rather than obscurely 36758b617aSPeter Maydell# failing because some code in one of our extensions doesn't work there. 37e22684e3SPeter Maydell# In newer versions of Sphinx this will display nicely; in older versions 38e22684e3SPeter Maydell# Sphinx will also produce a Python backtrace but at least the information 39e22684e3SPeter Maydell# gets printed... 401b11f28dSThomas Huthif sys.version_info < (3,6): 41e22684e3SPeter Maydell raise ConfigError( 421b11f28dSThomas Huth "QEMU requires a Sphinx that uses Python 3.6 or better\n") 43f8cf7147SPeter Maydell 44f8cf7147SPeter Maydell# The per-manual conf.py will set qemu_docdir for a single-manual build; 45f8cf7147SPeter Maydell# otherwise set it here if this is an entire-manual-set build. 46f8cf7147SPeter Maydell# This is always the absolute path of the docs/ directory in the source tree. 47f8cf7147SPeter Maydelltry: 48f8cf7147SPeter Maydell qemu_docdir 49f8cf7147SPeter Maydellexcept NameError: 50f8cf7147SPeter Maydell qemu_docdir = os.path.abspath(".") 51f8cf7147SPeter Maydell 525329da6aSPeter Maydell# If extensions (or modules to document with autodoc) are in another directory, 535329da6aSPeter Maydell# add these directories to sys.path here. If the directory is relative to the 54f8cf7147SPeter Maydell# documentation root, use an absolute path starting from qemu_docdir. 555329da6aSPeter Maydell# 564078ee54SPeter Maydell# Our extensions are in docs/sphinx; the qapidoc extension requires 574078ee54SPeter Maydell# the QAPI modules from scripts/. 58cd231e13SJohn Snowsys.path.insert(0, os.path.join(qemu_docdir, "sphinx")) 594078ee54SPeter Maydellsys.path.insert(0, os.path.join(qemu_docdir, "../scripts")) 605329da6aSPeter Maydell 615329da6aSPeter Maydell 625329da6aSPeter Maydell# -- General configuration ------------------------------------------------ 635329da6aSPeter Maydell 645329da6aSPeter Maydell# If your documentation needs a minimal Sphinx version, state it here. 655329da6aSPeter Maydell# 66bf3f8573SPeter Maydell# Sphinx 1.5 and earlier can't build our docs because they are too 67bf3f8573SPeter Maydell# picky about the syntax of the argument to the option:: directive 68bf3f8573SPeter Maydell# (see Sphinx bugs #646, #3366). 69bf3f8573SPeter Maydellneeds_sphinx = '1.6' 705329da6aSPeter Maydell 715329da6aSPeter Maydell# Add any Sphinx extension module names here, as strings. They can be 725329da6aSPeter Maydell# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 735329da6aSPeter Maydell# ones. 744078ee54SPeter Maydellextensions = ['kerneldoc', 'qmp_lexer', 'hxtool', 'depfile', 'qapidoc'] 755329da6aSPeter Maydell 765329da6aSPeter Maydell# Add any paths that contain templates here, relative to this directory. 77*0dd35c16SMarc-André Lureautemplates_path = [os.path.join(qemu_docdir, '_templates')] 785329da6aSPeter Maydell 795329da6aSPeter Maydell# The suffix(es) of source filenames. 805329da6aSPeter Maydell# You can specify multiple suffix as a list of string: 815329da6aSPeter Maydell# 825329da6aSPeter Maydell# source_suffix = ['.rst', '.md'] 835329da6aSPeter Maydellsource_suffix = '.rst' 845329da6aSPeter Maydell 855329da6aSPeter Maydell# The master toctree document. 865329da6aSPeter Maydellmaster_doc = 'index' 875329da6aSPeter Maydell 885329da6aSPeter Maydell# General information about the project. 895329da6aSPeter Maydellproject = u'QEMU' 90955990afSPeter Maydellcopyright = u'2021, The QEMU Project Developers' 915329da6aSPeter Maydellauthor = u'The QEMU Project Developers' 925329da6aSPeter Maydell 935329da6aSPeter Maydell# The version info for the project you're documenting, acts as replacement for 945329da6aSPeter Maydell# |version| and |release|, also used in various other places throughout the 955329da6aSPeter Maydell# built documents. 966038f5fcSPeter Maydell 976038f5fcSPeter Maydell# Extract this information from the VERSION file, for the benefit of 986038f5fcSPeter Maydell# standalone Sphinx runs as used by readthedocs.org. Builds run from 996038f5fcSPeter Maydell# the Makefile will pass version and release on the sphinx-build 1006038f5fcSPeter Maydell# command line, which override this. 1016038f5fcSPeter Maydelltry: 1026038f5fcSPeter Maydell extracted_version = None 1036038f5fcSPeter Maydell with open(os.path.join(qemu_docdir, '../VERSION')) as f: 1046038f5fcSPeter Maydell extracted_version = f.readline().strip() 1056038f5fcSPeter Maydellexcept: 1066038f5fcSPeter Maydell pass 1076038f5fcSPeter Maydellfinally: 1086038f5fcSPeter Maydell if extracted_version: 1096038f5fcSPeter Maydell version = release = extracted_version 1106038f5fcSPeter Maydell else: 1116038f5fcSPeter Maydell version = release = "unknown version" 1125329da6aSPeter Maydell 1135329da6aSPeter Maydell# The language for content autogenerated by Sphinx. Refer to documentation 1145329da6aSPeter Maydell# for a list of supported languages. 1155329da6aSPeter Maydell# 1165329da6aSPeter Maydell# This is also used if you do content translation via gettext catalogs. 1175329da6aSPeter Maydell# Usually you set "language" from the command line for these cases. 1185329da6aSPeter Maydelllanguage = None 1195329da6aSPeter Maydell 1205329da6aSPeter Maydell# List of patterns, relative to source directory, that match files and 1215329da6aSPeter Maydell# directories to ignore when looking for source files. 1225329da6aSPeter Maydell# This patterns also effect to html_static_path and html_extra_path 1235329da6aSPeter Maydellexclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] 1245329da6aSPeter Maydell 1255329da6aSPeter Maydell# The name of the Pygments (syntax highlighting) style to use. 1265329da6aSPeter Maydellpygments_style = 'sphinx' 1275329da6aSPeter Maydell 1285329da6aSPeter Maydell# If true, `todo` and `todoList` produce output, else they produce nothing. 1295329da6aSPeter Maydelltodo_include_todos = False 1305329da6aSPeter Maydell 131e250e867SPeter Maydell# Sphinx defaults to warning about use of :option: for options not defined 132e250e867SPeter Maydell# with "option::" in the document being processed. Turn that off. 133e250e867SPeter Maydellsuppress_warnings = ["ref.option"] 1345329da6aSPeter Maydell 13527a296fcSPeter Maydell# The rst_epilog fragment is effectively included in every rST file. 13627a296fcSPeter Maydell# We use it to define substitutions based on build config that 13727a296fcSPeter Maydell# can then be used in the documentation. The fallback if the 13827a296fcSPeter Maydell# environment variable is not set is for the benefit of readthedocs 13927a296fcSPeter Maydell# style document building; our Makefile always sets the variable. 14027a296fcSPeter Maydellconfdir = os.getenv('CONFDIR', "/etc/qemu") 14127a296fcSPeter Maydellrst_epilog = ".. |CONFDIR| replace:: ``" + confdir + "``\n" 142de1572caSPeter Maydell# We slurp in the defs.rst.inc and literally include it into rst_epilog, 143de1572caSPeter Maydell# because Sphinx's include:: directive doesn't work with absolute paths 144de1572caSPeter Maydell# and there isn't any one single relative path that will work for all 145de1572caSPeter Maydell# documents and for both via-make and direct sphinx-build invocation. 146de1572caSPeter Maydellwith open(os.path.join(qemu_docdir, 'defs.rst.inc')) as f: 147de1572caSPeter Maydell rst_epilog += f.read() 14827a296fcSPeter Maydell 1495329da6aSPeter Maydell# -- Options for HTML output ---------------------------------------------- 1505329da6aSPeter Maydell 1515329da6aSPeter Maydell# The theme to use for HTML and HTML Help pages. See the documentation for 1525329da6aSPeter Maydell# a list of builtin themes. 1535329da6aSPeter Maydell# 15473e6aec6SMarc-André Lureautry: 15573e6aec6SMarc-André Lureau import sphinx_rtd_theme 15673e6aec6SMarc-André Lureauexcept ImportError: 15773e6aec6SMarc-André Lureau raise ConfigError( 15873e6aec6SMarc-André Lureau 'The Sphinx \'sphinx_rtd_theme\' HTML theme was not found.\n' 15973e6aec6SMarc-André Lureau ) 16073e6aec6SMarc-André Lureau 16173e6aec6SMarc-André Lureauhtml_theme = 'sphinx_rtd_theme' 1625329da6aSPeter Maydell 1635329da6aSPeter Maydell# Theme options are theme-specific and customize the look and feel of a theme 1645329da6aSPeter Maydell# further. For a list of options available for each theme, see the 1655329da6aSPeter Maydell# documentation. 16673e6aec6SMarc-André Lureauif LooseVersion(sphinx_rtd_theme.__version__) >= LooseVersion("0.4.3"): 167f8cf7147SPeter Maydell html_theme_options = { 16873e6aec6SMarc-André Lureau "style_nav_header_background": "#802400", 169f8cf7147SPeter Maydell } 1705329da6aSPeter Maydell 17173e6aec6SMarc-André Lureauhtml_logo = os.path.join(qemu_docdir, "../ui/icons/qemu_128x128.png") 17273e6aec6SMarc-André Lureau 17373e6aec6SMarc-André Lureauhtml_favicon = os.path.join(qemu_docdir, "../ui/icons/qemu_32x32.png") 17473e6aec6SMarc-André Lureau 1755329da6aSPeter Maydell# Add any paths that contain custom static files (such as style sheets) here, 1765329da6aSPeter Maydell# relative to this directory. They are copied after the builtin static files, 1775329da6aSPeter Maydell# so a file named "default.css" will overwrite the builtin "default.css". 17873e6aec6SMarc-André Lureauhtml_static_path = [os.path.join(qemu_docdir, "sphinx-static")] 17973e6aec6SMarc-André Lureau 18073e6aec6SMarc-André Lureauhtml_css_files = [ 18173e6aec6SMarc-André Lureau 'theme_overrides.css', 18273e6aec6SMarc-André Lureau] 18373e6aec6SMarc-André Lureau 18473e6aec6SMarc-André Lureauhtml_context = { 18573e6aec6SMarc-André Lureau "display_gitlab": True, 18673e6aec6SMarc-André Lureau "gitlab_user": "qemu-project", 18773e6aec6SMarc-André Lureau "gitlab_repo": "qemu", 18873e6aec6SMarc-André Lureau "gitlab_version": "master", 18973e6aec6SMarc-André Lureau "conf_py_path": "/docs/", # Path in the checkout to the docs root 19073e6aec6SMarc-André Lureau} 1915329da6aSPeter Maydell 1925329da6aSPeter Maydell# Custom sidebar templates, must be a dictionary that maps document names 1935329da6aSPeter Maydell# to template names. 19473e6aec6SMarc-André Lureau#html_sidebars = {} 1955329da6aSPeter Maydell 196479fb8a5SPeter Maydell# Don't copy the rST source files to the HTML output directory, 197479fb8a5SPeter Maydell# and don't put links to the sources into the output HTML. 198479fb8a5SPeter Maydellhtml_copy_source = False 1995329da6aSPeter Maydell 2005329da6aSPeter Maydell# -- Options for HTMLHelp output ------------------------------------------ 2015329da6aSPeter Maydell 2025329da6aSPeter Maydell# Output file base name for HTML help builder. 2035329da6aSPeter Maydellhtmlhelp_basename = 'QEMUdoc' 2045329da6aSPeter Maydell 2055329da6aSPeter Maydell 2065329da6aSPeter Maydell# -- Options for LaTeX output --------------------------------------------- 2075329da6aSPeter Maydell 2085329da6aSPeter Maydelllatex_elements = { 2095329da6aSPeter Maydell # The paper size ('letterpaper' or 'a4paper'). 2105329da6aSPeter Maydell # 2115329da6aSPeter Maydell # 'papersize': 'letterpaper', 2125329da6aSPeter Maydell 2135329da6aSPeter Maydell # The font size ('10pt', '11pt' or '12pt'). 2145329da6aSPeter Maydell # 2155329da6aSPeter Maydell # 'pointsize': '10pt', 2165329da6aSPeter Maydell 2175329da6aSPeter Maydell # Additional stuff for the LaTeX preamble. 2185329da6aSPeter Maydell # 2195329da6aSPeter Maydell # 'preamble': '', 2205329da6aSPeter Maydell 2215329da6aSPeter Maydell # Latex figure (float) alignment 2225329da6aSPeter Maydell # 2235329da6aSPeter Maydell # 'figure_align': 'htbp', 2245329da6aSPeter Maydell} 2255329da6aSPeter Maydell 2265329da6aSPeter Maydell# Grouping the document tree into LaTeX files. List of tuples 2275329da6aSPeter Maydell# (source start file, target name, title, 2285329da6aSPeter Maydell# author, documentclass [howto, manual, or own class]). 2295329da6aSPeter Maydelllatex_documents = [ 2305329da6aSPeter Maydell (master_doc, 'QEMU.tex', u'QEMU Documentation', 2315329da6aSPeter Maydell u'The QEMU Project Developers', 'manual'), 2325329da6aSPeter Maydell] 2335329da6aSPeter Maydell 2345329da6aSPeter Maydell 2355329da6aSPeter Maydell# -- Options for manual page output --------------------------------------- 23627a296fcSPeter Maydell# Individual manual/conf.py can override this to create man pages 237b93f4fbdSPeter Maydellman_pages = [ 238b93f4fbdSPeter Maydell ('interop/qemu-ga', 'qemu-ga', 239b93f4fbdSPeter Maydell 'QEMU Guest Agent', 240b93f4fbdSPeter Maydell ['Michael Roth <mdroth@linux.vnet.ibm.com>'], 8), 241b93f4fbdSPeter Maydell ('interop/qemu-ga-ref', 'qemu-ga-ref', 242b93f4fbdSPeter Maydell 'QEMU Guest Agent Protocol Reference', 243b93f4fbdSPeter Maydell [], 7), 244b93f4fbdSPeter Maydell ('interop/qemu-qmp-ref', 'qemu-qmp-ref', 245b93f4fbdSPeter Maydell 'QEMU QMP Reference Manual', 246b93f4fbdSPeter Maydell [], 7), 247b93f4fbdSPeter Maydell ('interop/qemu-storage-daemon-qmp-ref', 'qemu-storage-daemon-qmp-ref', 248b93f4fbdSPeter Maydell 'QEMU Storage Daemon QMP Reference Manual', 249b93f4fbdSPeter Maydell [], 7), 250b93f4fbdSPeter Maydell ('system/qemu-manpage', 'qemu', 251b93f4fbdSPeter Maydell 'QEMU User Documentation', 252b93f4fbdSPeter Maydell ['Fabrice Bellard'], 1), 253b93f4fbdSPeter Maydell ('system/qemu-block-drivers', 'qemu-block-drivers', 254b93f4fbdSPeter Maydell 'QEMU block drivers reference', 255b93f4fbdSPeter Maydell ['Fabrice Bellard and the QEMU Project developers'], 7), 256b93f4fbdSPeter Maydell ('system/qemu-cpu-models', 'qemu-cpu-models', 257b93f4fbdSPeter Maydell 'QEMU CPU Models', 258b93f4fbdSPeter Maydell ['The QEMU Project developers'], 7), 259b93f4fbdSPeter Maydell ('tools/qemu-img', 'qemu-img', 260b93f4fbdSPeter Maydell 'QEMU disk image utility', 261b93f4fbdSPeter Maydell ['Fabrice Bellard'], 1), 262b93f4fbdSPeter Maydell ('tools/qemu-nbd', 'qemu-nbd', 263b93f4fbdSPeter Maydell 'QEMU Disk Network Block Device Server', 264b93f4fbdSPeter Maydell ['Anthony Liguori <anthony@codemonkey.ws>'], 8), 265b93f4fbdSPeter Maydell ('tools/qemu-pr-helper', 'qemu-pr-helper', 266b93f4fbdSPeter Maydell 'QEMU persistent reservation helper', 267b93f4fbdSPeter Maydell [], 8), 268b93f4fbdSPeter Maydell ('tools/qemu-storage-daemon', 'qemu-storage-daemon', 269b93f4fbdSPeter Maydell 'QEMU storage daemon', 270b93f4fbdSPeter Maydell [], 1), 271b93f4fbdSPeter Maydell ('tools/qemu-trace-stap', 'qemu-trace-stap', 272b93f4fbdSPeter Maydell 'QEMU SystemTap trace tool', 273b93f4fbdSPeter Maydell [], 1), 274b93f4fbdSPeter Maydell ('tools/virtfs-proxy-helper', 'virtfs-proxy-helper', 275b93f4fbdSPeter Maydell 'QEMU 9p virtfs proxy filesystem helper', 276b93f4fbdSPeter Maydell ['M. Mohan Kumar'], 1), 277b93f4fbdSPeter Maydell ('tools/virtiofsd', 'virtiofsd', 278b93f4fbdSPeter Maydell 'QEMU virtio-fs shared file system daemon', 279b93f4fbdSPeter Maydell ['Stefan Hajnoczi <stefanha@redhat.com>', 280b93f4fbdSPeter Maydell 'Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>'], 1), 281b93f4fbdSPeter Maydell] 282269a7e97SDamien Goutte-Gattatman_make_section_directory = False 2835329da6aSPeter Maydell 2845329da6aSPeter Maydell# -- Options for Texinfo output ------------------------------------------- 2855329da6aSPeter Maydell 2865329da6aSPeter Maydell# Grouping the document tree into Texinfo files. List of tuples 2875329da6aSPeter Maydell# (source start file, target name, title, author, 2885329da6aSPeter Maydell# dir menu entry, description, category) 2895329da6aSPeter Maydelltexinfo_documents = [ 2905329da6aSPeter Maydell (master_doc, 'QEMU', u'QEMU Documentation', 2915329da6aSPeter Maydell author, 'QEMU', 'One line description of project.', 2925329da6aSPeter Maydell 'Miscellaneous'), 2935329da6aSPeter Maydell] 2945329da6aSPeter Maydell 2955329da6aSPeter Maydell 2965329da6aSPeter Maydell 29722b5ea75SPeter Maydell# We use paths starting from qemu_docdir here so that you can run 29822b5ea75SPeter Maydell# sphinx-build from anywhere and the kerneldoc extension can still 29922b5ea75SPeter Maydell# find everything. 300a94a689cSYonggang Luokerneldoc_bin = ['perl', os.path.join(qemu_docdir, '../scripts/kernel-doc')] 30122b5ea75SPeter Maydellkerneldoc_srctree = os.path.join(qemu_docdir, '..') 3026803d6e9SPeter Maydellhxtool_srctree = os.path.join(qemu_docdir, '..') 3034078ee54SPeter Maydellqapidoc_srctree = os.path.join(qemu_docdir, '..') 304