xref: /libCEED/doc/sphinx/source/conf.py (revision 4c4400c783f304914d75f9af2890e7b9d7abe7ca)
1*4c4400c7SValeria Barra#!/usr/bin/env python3
2*4c4400c7SValeria Barra# -*- coding: utf-8 -*-
3*4c4400c7SValeria Barra#
4*4c4400c7SValeria Barra# libCEED documentation build configuration file, created by
5*4c4400c7SValeria Barra# sphinx-quickstart on Tue Jan  7 18:59:28 2020.
6*4c4400c7SValeria Barra#
7*4c4400c7SValeria Barra# This file is execfile()d with the current directory set to its
8*4c4400c7SValeria Barra# containing dir.
9*4c4400c7SValeria Barra#
10*4c4400c7SValeria Barra# Note that not all possible configuration values are present in this
11*4c4400c7SValeria Barra# autogenerated file.
12*4c4400c7SValeria Barra#
13*4c4400c7SValeria Barra# All configuration values have a default; values that are commented out
14*4c4400c7SValeria Barra# serve to show the default.
15*4c4400c7SValeria Barra
16*4c4400c7SValeria Barra# If extensions (or modules to document with autodoc) are in another directory,
17*4c4400c7SValeria Barra# add these directories to sys.path here. If the directory is relative to the
18*4c4400c7SValeria Barra# documentation root, use os.path.abspath to make it absolute, like shown here.
19*4c4400c7SValeria Barra#
20*4c4400c7SValeria Barra# import os
21*4c4400c7SValeria Barra# import sys
22*4c4400c7SValeria Barra# sys.path.insert(0, os.path.abspath('.'))
23*4c4400c7SValeria Barraimport sphinx_rtd_theme
24*4c4400c7SValeria Barraimport sys
25*4c4400c7SValeria Barraimport breathe
26*4c4400c7SValeria Barraimport os
27*4c4400c7SValeria Barraimport subprocess
28*4c4400c7SValeria Barra
29*4c4400c7SValeria Barra# -- General configuration ------------------------------------------------
30*4c4400c7SValeria Barra
31*4c4400c7SValeria Barra# If your documentation needs a minimal Sphinx version, state it here.
32*4c4400c7SValeria Barra#
33*4c4400c7SValeria Barra# needs_sphinx = '1.0'
34*4c4400c7SValeria Barra
35*4c4400c7SValeria Barra# Add any Sphinx extension module names here, as strings. They can be
36*4c4400c7SValeria Barra# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
37*4c4400c7SValeria Barra# ones.
38*4c4400c7SValeria Barraextensions = [
39*4c4400c7SValeria Barra    'breathe',
40*4c4400c7SValeria Barra    'hoverxref.extension',  # still in beta; not rendering well on RTD
41*4c4400c7SValeria Barra    'recommonmark',
42*4c4400c7SValeria Barra    'sphinx_markdown_tables',
43*4c4400c7SValeria Barra    'sphinx_rtd_theme',
44*4c4400c7SValeria Barra    'sphinx.ext.autodoc',
45*4c4400c7SValeria Barra    'sphinx.ext.coverage',
46*4c4400c7SValeria Barra    'sphinx.ext.doctest',
47*4c4400c7SValeria Barra    'sphinx.ext.ifconfig',
48*4c4400c7SValeria Barra    'sphinx.ext.intersphinx',
49*4c4400c7SValeria Barra    'sphinx.ext.githubpages',
50*4c4400c7SValeria Barra    'sphinx.ext.mathjax',
51*4c4400c7SValeria Barra    'sphinxcontrib.mermaid',  # still in beta; fails with latexpdf builder
52*4c4400c7SValeria Barra    'sphinx.ext.todo',
53*4c4400c7SValeria Barra    'sphinx.ext.viewcode',
54*4c4400c7SValeria Barra    'sphinxcontrib.bibtex',
55*4c4400c7SValeria Barra    'sphinxcontrib.rsvgconverter',
56*4c4400c7SValeria Barra    ]
57*4c4400c7SValeria Barra
58*4c4400c7SValeria Barra# The following, if true, allows figures, tables and code-blocks to be
59*4c4400c7SValeria Barra# automatically numbered if they have a caption.
60*4c4400c7SValeria Barranumfig = True
61*4c4400c7SValeria Barra
62*4c4400c7SValeria Barra# Add any paths that contain templates here, relative to this directory.
63*4c4400c7SValeria Barratemplates_path = ['_templates']
64*4c4400c7SValeria Barra
65*4c4400c7SValeria Barra# The suffix(es) of source filenames.
66*4c4400c7SValeria Barra# You can specify multiple suffix as a list of string:
67*4c4400c7SValeria Barra#
68*4c4400c7SValeria Barra# source_suffix = ['.rst', '.md']
69*4c4400c7SValeria Barrasource_suffix = {
70*4c4400c7SValeria Barra    '.rst': 'restructuredtext',
71*4c4400c7SValeria Barra    '.md': 'markdown'}
72*4c4400c7SValeria Barra
73*4c4400c7SValeria Barra# The master toctree document.
74*4c4400c7SValeria Barramaster_doc = 'index'
75*4c4400c7SValeria Barra
76*4c4400c7SValeria Barra# General information about the project.
77*4c4400c7SValeria Barraproject = 'libCEED'
78*4c4400c7SValeria Barracopyright = '2020, LLNL, University of Colorado, University of Illinois, University of Tennesee, and the authors'
79*4c4400c7SValeria Barrawith open('../../../AUTHORS') as f:
80*4c4400c7SValeria Barra    authorlist = f.readlines()
81*4c4400c7SValeria Barraauthor = ', '.join(authorlist)
82*4c4400c7SValeria Barra
83*4c4400c7SValeria Barra# The version info for the project you're documenting, acts as replacement for
84*4c4400c7SValeria Barra# |version| and |release|, also used in various other places throughout the
85*4c4400c7SValeria Barra# built documents.
86*4c4400c7SValeria Barra#
87*4c4400c7SValeria Barra# The short X.Y version.
88*4c4400c7SValeria Barrawith open('../../../ceed.pc.template') as f:
89*4c4400c7SValeria Barra    pkgconf_version = 'unknown'
90*4c4400c7SValeria Barra    for line in f:
91*4c4400c7SValeria Barra        if line.startswith('Version:'):
92*4c4400c7SValeria Barra            pkgconf_version = line.partition(': ')[2]
93*4c4400c7SValeria Barra            break
94*4c4400c7SValeria Barraversion = pkgconf_version
95*4c4400c7SValeria Barra# The full version, including alpha/beta/rc tags.
96*4c4400c7SValeria Barrarelease = pkgconf_version
97*4c4400c7SValeria Barra
98*4c4400c7SValeria Barra# The language for content autogenerated by Sphinx. Refer to documentation
99*4c4400c7SValeria Barra# for a list of supported languages.
100*4c4400c7SValeria Barra#
101*4c4400c7SValeria Barra# This is also used if you do content translation via gettext catalogs.
102*4c4400c7SValeria Barra# Usually you set "language" from the command line for these cases.
103*4c4400c7SValeria Barralanguage = None
104*4c4400c7SValeria Barra
105*4c4400c7SValeria Barra# List of patterns, relative to source directory, that match files and
106*4c4400c7SValeria Barra# directories to ignore when looking for source files.
107*4c4400c7SValeria Barra# This patterns also effect to html_static_path and html_extra_path
108*4c4400c7SValeria Barraexclude_patterns = []
109*4c4400c7SValeria Barra
110*4c4400c7SValeria Barra# The name of the Pygments (syntax highlighting) style to use.
111*4c4400c7SValeria Barrapygments_style = 'sphinx'
112*4c4400c7SValeria Barra
113*4c4400c7SValeria Barra# If true, `todo` and `todoList` produce output, else they produce nothing.
114*4c4400c7SValeria Barratodo_include_todos = True
115*4c4400c7SValeria Barra
116*4c4400c7SValeria Barra
117*4c4400c7SValeria Barra# -- Options for HTML output ----------------------------------------------
118*4c4400c7SValeria Barra
119*4c4400c7SValeria Barra# The theme to use for HTML and HTML Help pages.  See the documentation for
120*4c4400c7SValeria Barra# a list of builtin themes.
121*4c4400c7SValeria Barra#
122*4c4400c7SValeria Barrahtml_theme = 'sphinx_rtd_theme'
123*4c4400c7SValeria Barra
124*4c4400c7SValeria Barra# Theme options are theme-specific and customize the look and feel of a theme
125*4c4400c7SValeria Barra# further.  For a list of options available for each theme, see the
126*4c4400c7SValeria Barra# documentation.
127*4c4400c7SValeria Barra#
128*4c4400c7SValeria Barra# html_theme_options = {}
129*4c4400c7SValeria Barra
130*4c4400c7SValeria Barra# Add any paths that contain custom static files (such as style sheets) here,
131*4c4400c7SValeria Barra# relative to this directory. They are copied after the builtin static files,
132*4c4400c7SValeria Barra# so a file named "default.css" will overwrite the builtin "default.css".
133*4c4400c7SValeria Barrahtml_static_path = ['_static']
134*4c4400c7SValeria Barra
135*4c4400c7SValeria Barra# Custom sidebar templates, must be a dictionary that maps document names
136*4c4400c7SValeria Barra# to template names.
137*4c4400c7SValeria Barra#
138*4c4400c7SValeria Barra# This is required for the alabaster theme
139*4c4400c7SValeria Barra# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
140*4c4400c7SValeria Barrahtml_sidebars = {
141*4c4400c7SValeria Barra    '**': [
142*4c4400c7SValeria Barra        'relations.html',  # needs 'show_related': True theme option to display
143*4c4400c7SValeria Barra        'searchbox.html',
144*4c4400c7SValeria Barra    ]
145*4c4400c7SValeria Barra}
146*4c4400c7SValeria Barra
147*4c4400c7SValeria Barra# hoverxref options
148*4c4400c7SValeria Barrahoverxref_auto_ref = True
149*4c4400c7SValeria Barrahoverxref_mathjax = True
150*4c4400c7SValeria Barra
151*4c4400c7SValeria Barra# -- Options for HTMLHelp output ------------------------------------------
152*4c4400c7SValeria Barra
153*4c4400c7SValeria Barra# Output file base name for HTML help builder.
154*4c4400c7SValeria Barrahtmlhelp_basename = 'libCEEDdoc'
155*4c4400c7SValeria Barra
156*4c4400c7SValeria Barra
157*4c4400c7SValeria Barra# -- Options for LaTeX output ---------------------------------------------
158*4c4400c7SValeria Barra
159*4c4400c7SValeria Barralatex_engine = 'xelatex'
160*4c4400c7SValeria Barra
161*4c4400c7SValeria Barralatex_elements = {
162*4c4400c7SValeria Barra    # The paper size ('letterpaper' or 'a4paper').
163*4c4400c7SValeria Barra    #
164*4c4400c7SValeria Barra    # 'papersize': 'letterpaper',
165*4c4400c7SValeria Barra
166*4c4400c7SValeria Barra    # The font size ('10pt', '11pt' or '12pt').
167*4c4400c7SValeria Barra    #
168*4c4400c7SValeria Barra    # 'pointsize': '10pt',
169*4c4400c7SValeria Barra
170*4c4400c7SValeria Barra    # Additional stuff for the LaTeX preamble.
171*4c4400c7SValeria Barra    #
172*4c4400c7SValeria Barra    # 'preamble': '',
173*4c4400c7SValeria Barra
174*4c4400c7SValeria Barra    # Latex figure (float) alignment
175*4c4400c7SValeria Barra    #
176*4c4400c7SValeria Barra    # 'figure_align': 'htbp',
177*4c4400c7SValeria Barra    'fontenc': r'\usepackage{mathspec}',
178*4c4400c7SValeria Barra    'fontpkg': r'''
179*4c4400c7SValeria Barra\setmainfont{TeX Gyre Pagella}
180*4c4400c7SValeria Barra\setmathfont{TeX Gyre Pagella Math}
181*4c4400c7SValeria Barra\setsansfont{DejaVu Sans}
182*4c4400c7SValeria Barra\setmonofont{DejaVu Sans Mono}
183*4c4400c7SValeria Barra''',
184*4c4400c7SValeria Barra}
185*4c4400c7SValeria Barra
186*4c4400c7SValeria Barralatex_logo = '../../img/ceed-full-name-logo.PNG'
187*4c4400c7SValeria Barra
188*4c4400c7SValeria Barralatexauthorslist = r' \and '.join(authorlist)
189*4c4400c7SValeria Barra
190*4c4400c7SValeria Barra# Grouping the document tree into LaTeX files. List of tuples
191*4c4400c7SValeria Barra# (source start file, target name, title,
192*4c4400c7SValeria Barra#  author, documentclass [howto, manual, or own class]).
193*4c4400c7SValeria Barralatex_documents = [
194*4c4400c7SValeria Barra    (master_doc, 'libCEED.tex', 'libCEED User Manual',
195*4c4400c7SValeria Barra     latexauthorslist, 'howto'),
196*4c4400c7SValeria Barra]
197*4c4400c7SValeria Barra
198*4c4400c7SValeria Barra
199*4c4400c7SValeria Barra# -- Options for manual page output ---------------------------------------
200*4c4400c7SValeria Barra
201*4c4400c7SValeria Barra# One entry per manual page. List of tuples
202*4c4400c7SValeria Barra# (source start file, name, description, authors, manual section).
203*4c4400c7SValeria Barraman_pages = [
204*4c4400c7SValeria Barra    (master_doc, 'libceed', 'libCEED User Manual',
205*4c4400c7SValeria Barra     [author], 1)
206*4c4400c7SValeria Barra]
207*4c4400c7SValeria Barra
208*4c4400c7SValeria Barra
209*4c4400c7SValeria Barra# -- Options for Texinfo output -------------------------------------------
210*4c4400c7SValeria Barra
211*4c4400c7SValeria Barra# Grouping the document tree into Texinfo files. List of tuples
212*4c4400c7SValeria Barra# (source start file, target name, title, author,
213*4c4400c7SValeria Barra#  dir menu entry, description, category)
214*4c4400c7SValeria Barratexinfo_documents = [
215*4c4400c7SValeria Barra    (master_doc, 'libCEED', 'libCEED User Manual',
216*4c4400c7SValeria Barra     latexauthorslist, 'libCEED', 'Efficient implementations of finite element operators.',
217*4c4400c7SValeria Barra     'Miscellaneous'),
218*4c4400c7SValeria Barra]
219*4c4400c7SValeria Barra
220*4c4400c7SValeria Barra
221*4c4400c7SValeria Barra# -- Options for Epub output ----------------------------------------------
222*4c4400c7SValeria Barra
223*4c4400c7SValeria Barra# Bibliographic Dublin Core info.
224*4c4400c7SValeria Barraepub_title = project
225*4c4400c7SValeria Barraepub_author = author
226*4c4400c7SValeria Barraepub_publisher = author
227*4c4400c7SValeria Barraepub_copyright = copyright
228*4c4400c7SValeria Barra
229*4c4400c7SValeria Barra# The unique identifier of the text. This can be a ISBN number
230*4c4400c7SValeria Barra# or the project homepage.
231*4c4400c7SValeria Barra#
232*4c4400c7SValeria Barra# epub_identifier = ''
233*4c4400c7SValeria Barra
234*4c4400c7SValeria Barra# A unique identification for the text.
235*4c4400c7SValeria Barra#
236*4c4400c7SValeria Barra# epub_uid = ''
237*4c4400c7SValeria Barra
238*4c4400c7SValeria Barra# A list of files that should not be packed into the epub file.
239*4c4400c7SValeria Barraepub_exclude_files = ['search.html']
240*4c4400c7SValeria Barra
241*4c4400c7SValeria Barra
242*4c4400c7SValeria Barra# Example configuration for intersphinx: refer to the Python standard library.
243*4c4400c7SValeria Barraintersphinx_mapping = {'https://docs.python.org/': None}
244*4c4400c7SValeria Barra
245*4c4400c7SValeria Barra
246*4c4400c7SValeria Barra# -- Options for breathe --------------------------------------------------
247*4c4400c7SValeria Barrasys.path.append(breathe.__path__)
248*4c4400c7SValeria Barrabreathe_projects = {"libCEED": "../../../xml"}
249*4c4400c7SValeria Barrabreathe_default_project = "libCEED"
250*4c4400c7SValeria Barrabreathe_build_directory = "../build/breathe"
251*4c4400c7SValeria Barra
252*4c4400c7SValeria Barra# Run Doxygen if building on Read The Docs
253*4c4400c7SValeria Barraif os.environ.get('READTHEDOCS'):
254*4c4400c7SValeria Barra    rootdir = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, os.pardir)
255*4c4400c7SValeria Barra    subprocess.check_call(['doxygen', 'Doxyfile'], cwd=rootdir)
256