Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
More copyright lines updated to 2021.
[simgrid.git] / docs / source / conf.py
1 # -*- coding: utf-8 -*-
2 #
3 # Configuration file for the Sphinx documentation builder.
4 #
5 # This file does only contain a selection of the most common options. For a
6 # full list see the documentation:
7 # http://www.sphinx-doc.org/en/master/config
8
9 # -- Path setup --------------------------------------------------------------
10
11 # If extensions (or modules to document with autodoc) are in another directory,
12 # add these directories to sys.path here. If the directory is relative to the
13 # documentation root, use os.path.abspath to make it absolute, like shown here.
14 #
15 import os
16 import subprocess
17
18 # Search for our extensions too
19 import sys
20 sys.path.append(os.path.abspath('_ext'))
21
22 # -- Run doxygen on readthedocs.org ------------------------------------------
23
24 read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True'
25
26 if read_the_docs_build:
27     subprocess.call('pwd', shell=True) # should be in docs/source
28     subprocess.call('doxygen', shell=True)
29     subprocess.call('javasphinx-apidoc --force -o java/ ../../src/bindings/java/org/simgrid/msg', shell=True)
30     subprocess.call('rm java/packages.rst', shell=True)
31
32 # -- Project information -----------------------------------------------------
33
34 project = u'SimGrid'
35 copyright = u'2002-2021, The SimGrid Team'
36 author = u'The SimGrid Team'
37
38 # The short X.Y version
39 version = u'3.26.1'
40
41 # -- General configuration ---------------------------------------------------
42
43 # If your documentation needs a minimal Sphinx version, state it here.
44 #
45 # needs_sphinx = '1.0'
46
47 # Add any Sphinx extension module names here, as strings. They can be
48 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
49 # ones.
50 extensions = [
51     'sphinx.ext.todo',
52     'breathe',
53     'sphinx.ext.autodoc',
54     'sphinx.ext.intersphinx',
55     'sphinx.ext.autosummary',
56     'sphinx_tabs.tabs',
57     'javasphinx',
58     'showfile',
59     'autodoxy',
60 ]
61
62 todo_include_todos = True
63
64 # Setup the breath extension
65 breathe_projects = {'simgrid': '../build/xml'}
66 breathe_default_project = "simgrid"
67
68 # Setup the autodoxy extension
69 doxygen_xml = os.path.join(os.path.dirname(__file__), "..", "build", "xml")
70 autodoxy_requalified_identifiers =  [ # The first element will be substituted into the second one if it's starting an element or preceded by a space
71     ("Activity",       "simgrid::s4u::Activity"),
72     ("Actor",          "simgrid::s4u::Actor"),
73     ("ActorPtr",       "simgrid::s4u::ActorPtr"),
74     ("Barrier",        "simgrid::s4u::Barrier"),
75     ("BarrierPtr",     "simgrid::s4u::BarrierPtr"),
76     ("Comm",           "simgrid::s4u::Comm"),
77     ("CommPtr",        "simgrid::s4u::CommPtr"),
78     ("ConditionVariable",    "simgrid::s4u::ConditionVariable"),
79     ("ConditionVariablePtr", "simgrid::s4u::ConditionVariablePtr"),
80     ("Disk",           "simgrid::s4u::Disk"),
81     ("Exec",           "simgrid::s4u::Exec"),
82     ("ExecPtr",        "simgrid::s4u::ExecPtr"),
83     ("Host",           "simgrid::s4u::Host"),
84     ("s4u::Host",      "simgrid::s4u::Host"),
85     ("Engine",         "simgrid::s4u::Engine"),
86     ("Io",             "simgrid::s4u::Io"),
87     ("Link",           "simgrid::s4u::Link"),
88     ("Mailbox",        "simgrid::s4u::Mailbox"),
89     ("Mutex",          "simgrid::s4u::Mutex"),
90     ("s4u::Mutex",     "simgrid::s4u::Mutex"),
91     ("s4u::MutexPtr",  "simgrid::s4u::MutexPtr"),
92     ("NetZone",        "simgrid::s4u::NetZone"),
93     ("Semaphore",      "simgrid::s4u::Semaphore"),
94     ("VirtualMachine", "simgrid::s4u::VirtualMachine"),
95   ]
96
97 # Generate a warning for all a cross-reference (such as :func:`myfunc`) that cannot be found
98 nitpicky = True
99 nitpick_ignore = [
100   ('cpp:identifier', 'boost'),
101   ('cpp:identifier', 'boost::intrusive_ptr<Activity>'),
102   ('cpp:identifier', 'boost::intrusive_ptr<Actor>'),
103   ('cpp:identifier', 'boost::intrusive_ptr<Barrier>'),
104   ('cpp:identifier', 'boost::intrusive_ptr<Comm>'),
105   ('cpp:identifier', 'boost::intrusive_ptr<Io>'),  
106   ('cpp:identifier', 'boost::intrusive_ptr<Mutex>'),  
107   ('cpp:identifier', 'kernel'),
108   ('cpp:identifier', 'kernel::activity'),
109   ('cpp:identifier', 'kernel::profile'),
110   ('cpp:identifier', 'kernel::resource'),
111   ('cpp:identifier', 'kernel::routing'),
112   ('cpp:identifier', 'simgrid'),
113   ('cpp:identifier', 'simgrid::s4u'),
114   ('cpp:identifier', 'this_actor'),
115   ('cpp:identifier', 's4u'),
116   ('cpp:identifier', 'size_t'),
117   ('cpp:identifier', 'uint64_t'),
118   ('cpp:identifier', 'xbt'),
119   ('cpp:identifier', 'xbt::string'),
120 ]
121
122 # For cross-ref generation
123 primary_domain = 'cpp'
124
125 # Add any paths that contain templates here, relative to this directory.
126 templates_path = ['_templates']
127
128 # The suffix(es) of source filenames.
129 # You can specify multiple suffix as a list of string: ['.rst', '.md']
130 source_suffix = '.rst'
131
132 # The master toctree document.
133 master_doc = 'index'
134
135 # The language for content autogenerated by Sphinx. Refer to documentation
136 # for a list of supported languages.
137 #
138 # This is also used if you do content translation via gettext catalogs.
139 # Usually you set "language" from the command line for these cases.
140 language = None
141
142 # List of patterns, relative to source directory, that match files and
143 # directories to ignore when looking for source files.
144 # This pattern also affects html_static_path and html_extra_path .
145 exclude_patterns = []
146
147 # The name of the Pygments (syntax highlighting) style to use.
148 pygments_style = 'sphinx'
149
150 # -- Options for HTML output -------------------------------------------------
151
152 # The theme to use for HTML and HTML Help pages.  See the documentation for
153 # a list of builtin themes.
154 #
155 html_theme = 'sphinx_rtd_theme'
156
157 # Theme options are theme-specific and customize the look and feel of a theme
158 # further.  For a list of options available for each theme, see the
159 # documentation.
160 #
161 html_theme_options = {
162     'navigation_depth': 4,
163     'sticky_navigation': True,
164     'display_version': True,
165     'includehidden': True,
166 }
167
168 # Add any paths that contain custom static files (such as style sheets) here,
169 # relative to this directory. They are copied after the builtin static files,
170 # so a file named "default.css" will overwrite the builtin "default.css".
171 html_static_path = ['_static']
172
173 # Custom sidebar templates, must be a dictionary that maps document names
174 # to template names.
175 #
176 # The default sidebars (for documents that don't match any pattern) are
177 # defined by theme itself.  Builtin themes are using these templates by
178 # default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
179 # 'searchbox.html']``.
180 #
181 # html_sidebars = {'**': ['localtoc.html', 'relations.html', 'searchbox.html']}
182
183 # -- Options for HTMLHelp output ---------------------------------------------
184
185 # Output file base name for HTML help builder.
186 htmlhelp_basename = 'simgrid-doc'
187
188 # -- Options for GitLab integration ------------------------------------------
189
190 html_context = {
191     "display_gitlab": True,  # Integrate Gitlab
192     "gitlab_host": "framagit.org",
193     "gitlab_user": "simgrid",
194     "gitlab_repo": "simgrid",
195     "gitlab_version": "master",  # Version
196     "conf_py_path": "/docs/source/",  # Path in the checkout to the docs root
197 }
198
199 html_css_files = [
200     'css/custom.css',
201 ]
202
203 # -- Other options