Gerard Marull-Paretas | 2b9b163 | 2021-03-30 12:10:31 +0200 | [diff] [blame] | 1 | # Zephyr documentation build configuration file. |
| 2 | # Reference: https://www.sphinx-doc.org/en/master/usage/configuration.html |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 3 | |
| 4 | import sys |
| 5 | import os |
Gerard Marull-Paretas | 4b09faf | 2021-03-30 14:38:59 +0200 | [diff] [blame] | 6 | from pathlib import Path |
Gerard Marull-Paretas | 7abf838 | 2021-03-30 14:31:52 +0200 | [diff] [blame] | 7 | import re |
Benjamin Cabé | 472def9 | 2023-10-19 18:46:47 +0200 | [diff] [blame] | 8 | import textwrap |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 9 | |
Gerard Marull-Paretas | 1829dc8 | 2021-07-20 14:25:27 +0200 | [diff] [blame] | 10 | from sphinx.cmd.build import get_parser |
Gerard Marull-Paretas | 0312b0b | 2021-03-30 12:22:20 +0200 | [diff] [blame] | 11 | |
Gerard Marull-Paretas | 1829dc8 | 2021-07-20 14:25:27 +0200 | [diff] [blame] | 12 | args = get_parser().parse_args() |
| 13 | ZEPHYR_BASE = Path(__file__).resolve().parents[1] |
| 14 | ZEPHYR_BUILD = Path(args.outputdir).resolve() |
Marti Bolivar | 1c852dd | 2018-06-07 21:45:55 -0400 | [diff] [blame] | 15 | |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 16 | # Add the '_extensions' directory to sys.path, to enable finding Sphinx |
Marti Bolivar | 6092fb0 | 2017-11-03 16:46:33 -0400 | [diff] [blame] | 17 | # extensions within. |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 18 | sys.path.insert(0, str(ZEPHYR_BASE / "doc" / "_extensions")) |
Carles Cufi | 8d5259a | 2018-11-12 16:14:51 +0100 | [diff] [blame] | 19 | |
Gerard Marull-Paretas | b2469e1 | 2021-03-30 10:55:43 +0200 | [diff] [blame] | 20 | # Add the '_scripts' directory to sys.path, to enable finding utility |
| 21 | # modules. |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 22 | sys.path.insert(0, str(ZEPHYR_BASE / "doc" / "_scripts")) |
Gerard Marull-Paretas | b2469e1 | 2021-03-30 10:55:43 +0200 | [diff] [blame] | 23 | |
Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 24 | # Add the directory which contains the runners package as well, |
| 25 | # for autodoc directives on runners.xyz. |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 26 | sys.path.insert(0, str(ZEPHYR_BASE / "scripts" / "west_commands")) |
Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 27 | |
Piotr Golyzniak | 5a3b979 | 2023-11-22 19:57:10 +0100 | [diff] [blame] | 28 | # Add the directory which contains the pytest-twister-pytest |
| 29 | sys.path.insert(0, str(ZEPHYR_BASE / "scripts" / "pylib" / "pytest-twister-harness" / "src")) |
| 30 | |
Gerard Marull-Paretas | b2469e1 | 2021-03-30 10:55:43 +0200 | [diff] [blame] | 31 | import redirects |
| 32 | |
Carles Cufi | 8d5259a | 2018-11-12 16:14:51 +0100 | [diff] [blame] | 33 | try: |
Marti Bolivar | 2b3d9df | 2019-07-22 11:00:59 -0600 | [diff] [blame] | 34 | import west as west_found |
| 35 | except ImportError: |
| 36 | west_found = False |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 37 | |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 38 | # -- Project -------------------------------------------------------------- |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 39 | |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 40 | project = "Zephyr Project" |
Henrik Brix Andersen | e278852 | 2024-01-05 13:37:19 +0100 | [diff] [blame] | 41 | copyright = "2015-2024 Zephyr Project members and individual contributors" |
Gerard Marull-Paretas | 2f5a9d0 | 2021-07-22 16:14:51 +0200 | [diff] [blame] | 42 | author = "The Zephyr Project Contributors" |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 43 | |
Gerard Marull-Paretas | 7abf838 | 2021-03-30 14:31:52 +0200 | [diff] [blame] | 44 | # parse version from 'VERSION' file |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 45 | with open(ZEPHYR_BASE / "VERSION") as f: |
Gerard Marull-Paretas | 7abf838 | 2021-03-30 14:31:52 +0200 | [diff] [blame] | 46 | m = re.match( |
| 47 | ( |
| 48 | r"^VERSION_MAJOR\s*=\s*(\d+)$\n" |
| 49 | + r"^VERSION_MINOR\s*=\s*(\d+)$\n" |
| 50 | + r"^PATCHLEVEL\s*=\s*(\d+)$\n" |
| 51 | + r"^VERSION_TWEAK\s*=\s*\d+$\n" |
| 52 | + r"^EXTRAVERSION\s*=\s*(.*)$" |
| 53 | ), |
| 54 | f.read(), |
| 55 | re.MULTILINE, |
| 56 | ) |
| 57 | |
| 58 | if not m: |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 59 | sys.stderr.write("Warning: Could not extract kernel version\n") |
Gerard Marull-Paretas | 7abf838 | 2021-03-30 14:31:52 +0200 | [diff] [blame] | 60 | version = "Unknown" |
| 61 | else: |
| 62 | major, minor, patch, extra = m.groups(1) |
| 63 | version = ".".join((major, minor, patch)) |
| 64 | if extra: |
| 65 | version += "-" + extra |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 66 | |
Gerard Marull-Paretas | 2f5a9d0 | 2021-07-22 16:14:51 +0200 | [diff] [blame] | 67 | release = version |
| 68 | |
Fabio Baltieri | 24cf2f6 | 2024-01-15 18:04:47 +0000 | [diff] [blame] | 69 | # parse SDK version from 'SDK_VERSION' file |
| 70 | with open(ZEPHYR_BASE / "SDK_VERSION") as f: |
| 71 | sdk_version = f.read().strip() |
| 72 | |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 73 | # -- General configuration ------------------------------------------------ |
| 74 | |
| 75 | extensions = [ |
Benjamin Cabé | 69fcc52 | 2023-08-09 17:52:13 +0200 | [diff] [blame] | 76 | "breathe", |
Benjamin Cabé | aa1ca17 | 2023-12-04 15:54:13 +0100 | [diff] [blame] | 77 | "sphinx_rtd_theme", |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 78 | "sphinx.ext.todo", |
| 79 | "sphinx.ext.extlinks", |
| 80 | "sphinx.ext.autodoc", |
Gerard Marull-Paretas | 4127138 | 2021-07-20 16:12:23 +0200 | [diff] [blame] | 81 | "sphinx.ext.graphviz", |
Gerard Marull-Paretas | 7c418a0 | 2023-07-12 20:47:14 +0200 | [diff] [blame] | 82 | "sphinxcontrib.jquery", |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 83 | "zephyr.application", |
| 84 | "zephyr.html_redirects", |
Gerard Marull-Paretas | fc942ef | 2022-01-12 13:41:15 +0100 | [diff] [blame] | 85 | "zephyr.kconfig", |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 86 | "zephyr.dtcompatible-role", |
| 87 | "zephyr.link-roles", |
| 88 | "sphinx_tabs.tabs", |
Gerard Marull-Paretas | 96c7d10 | 2021-04-06 00:02:03 +0200 | [diff] [blame] | 89 | "zephyr.warnings_filter", |
Gerard Marull-Paretas | 457f3a4 | 2021-04-16 10:47:43 +0200 | [diff] [blame] | 90 | "zephyr.doxyrunner", |
Benjamin Cabé | 353f42d | 2023-10-25 12:12:02 +0200 | [diff] [blame] | 91 | "zephyr.gh_utils", |
Anas Nashif | dd7532d | 2023-08-31 12:59:14 +0000 | [diff] [blame] | 92 | "zephyr.manifest_projects_table", |
Gerard Marull-Paretas | 95d8d2c | 2021-05-19 16:04:20 +0200 | [diff] [blame] | 93 | "notfound.extension", |
Gerard Marull-Paretas | e9d2cea | 2022-03-25 13:29:37 +0100 | [diff] [blame] | 94 | "sphinx_copybutton", |
Benjamin Cabé | b2977b7 | 2023-08-30 09:26:48 +0200 | [diff] [blame] | 95 | "sphinx_togglebutton", |
Gerard Marull-Paretas | 4dd1553 | 2021-05-10 19:11:14 +0200 | [diff] [blame] | 96 | "zephyr.external_content", |
Benjamin Cabé | 3c5f3da | 2023-08-30 08:46:55 +0200 | [diff] [blame] | 97 | "zephyr.domain", |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 98 | ] |
| 99 | |
| 100 | # Only use SVG converter when it is really needed, e.g. LaTeX. |
| 101 | if tags.has("svgconvert"): # pylint: disable=undefined-variable |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 102 | extensions.append("sphinxcontrib.rsvgconverter") |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 103 | |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 104 | templates_path = ["_templates"] |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 105 | |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 106 | exclude_patterns = ["_build"] |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 107 | |
Carles Cufi | 8d5259a | 2018-11-12 16:14:51 +0100 | [diff] [blame] | 108 | if not west_found: |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 109 | exclude_patterns.append("**/*west-apis*") |
Carles Cufi | 8d5259a | 2018-11-12 16:14:51 +0100 | [diff] [blame] | 110 | else: |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 111 | exclude_patterns.append("**/*west-not-found*") |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 112 | |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 113 | pygments_style = "sphinx" |
Benjamin Cabé | f2b080b | 2023-10-20 18:46:25 +0200 | [diff] [blame] | 114 | highlight_language = "none" |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 115 | |
Carol Lee | 1aa7733 | 2015-08-07 13:22:27 -0400 | [diff] [blame] | 116 | todo_include_todos = False |
Anas Nashif | 089a10b | 2015-06-12 10:51:09 -0700 | [diff] [blame] | 117 | |
Gerard Marull-Paretas | 038ce40 | 2022-02-02 11:14:26 +0100 | [diff] [blame] | 118 | nitpick_ignore = [ |
| 119 | # ignore C standard identifiers (they are not defined in Zephyr docs) |
| 120 | ("c:identifier", "FILE"), |
| 121 | ("c:identifier", "int8_t"), |
| 122 | ("c:identifier", "int16_t"), |
| 123 | ("c:identifier", "int32_t"), |
| 124 | ("c:identifier", "int64_t"), |
| 125 | ("c:identifier", "intptr_t"), |
| 126 | ("c:identifier", "off_t"), |
| 127 | ("c:identifier", "size_t"), |
| 128 | ("c:identifier", "ssize_t"), |
| 129 | ("c:identifier", "time_t"), |
| 130 | ("c:identifier", "uint8_t"), |
| 131 | ("c:identifier", "uint16_t"), |
| 132 | ("c:identifier", "uint32_t"), |
| 133 | ("c:identifier", "uint64_t"), |
| 134 | ("c:identifier", "uintptr_t"), |
| 135 | ("c:identifier", "va_list"), |
| 136 | ] |
| 137 | |
Fabio Baltieri | 24cf2f6 | 2024-01-15 18:04:47 +0000 | [diff] [blame] | 138 | SDK_URL_BASE="https://github.com/zephyrproject-rtos/sdk-ng/releases/download" |
| 139 | |
| 140 | rst_epilog = f""" |
David B. Kinder | 486c5a5 | 2018-05-04 16:31:05 -0700 | [diff] [blame] | 141 | .. include:: /substitutions.txt |
Fabio Baltieri | 24cf2f6 | 2024-01-15 18:04:47 +0000 | [diff] [blame] | 142 | |
| 143 | .. |sdk-version-literal| replace:: ``{sdk_version}`` |
| 144 | .. |sdk-version-trim| unicode:: {sdk_version} |
| 145 | :trim: |
| 146 | .. |sdk-version-ltrim| unicode:: {sdk_version} |
| 147 | :ltrim: |
| 148 | .. _Zephyr SDK bundle: https://github.com/zephyrproject-rtos/sdk-ng/releases/tag/v{sdk_version} |
| 149 | .. |sdk-url-linux| replace:: `{SDK_URL_BASE}/v{sdk_version}/zephyr-sdk-{sdk_version}_linux-x86_64.tar.xz` |
| 150 | .. |sdk-url-linux-sha| replace:: `{SDK_URL_BASE}/v{sdk_version}/sha256.sum` |
| 151 | .. |sdk-url-macos| replace:: `{SDK_URL_BASE}/v{sdk_version}/zephyr-sdk-{sdk_version}_macos-x86_64.tar.xz` |
| 152 | .. |sdk-url-macos-sha| replace:: `{SDK_URL_BASE}/v{sdk_version}/sha256.sum` |
| 153 | .. |sdk-url-windows| replace:: `{SDK_URL_BASE}/v{sdk_version}/zephyr-sdk-{sdk_version}_windows-x86_64.7z` |
Anas Nashif | 089a10b | 2015-06-12 10:51:09 -0700 | [diff] [blame] | 154 | """ |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 155 | |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 156 | # -- Options for HTML output ---------------------------------------------- |
| 157 | |
David B. Kinder | 5c8398d | 2018-08-03 16:12:03 -0700 | [diff] [blame] | 158 | html_theme = "sphinx_rtd_theme" |
Gerard Marull-Paretas | f0d3db2 | 2021-05-17 19:22:17 +0200 | [diff] [blame] | 159 | html_theme_options = { |
| 160 | "logo_only": True, |
| 161 | "prev_next_buttons_location": None |
| 162 | } |
Benjamin Cabé | d1ec6f7 | 2023-02-13 14:47:56 +0100 | [diff] [blame] | 163 | html_baseurl = "https://docs.zephyrproject.org/latest/" |
Anas Nashif | 1286750 | 2015-06-29 15:33:28 -0400 | [diff] [blame] | 164 | html_title = "Zephyr Project Documentation" |
Gerard Marull-Paretas | 2d06ad7 | 2021-05-19 12:25:16 +0200 | [diff] [blame] | 165 | html_logo = str(ZEPHYR_BASE / "doc" / "_static" / "images" / "logo.svg") |
Gerard Marull-Paretas | 1cecfe7 | 2021-06-30 15:03:11 +0200 | [diff] [blame] | 166 | html_favicon = str(ZEPHYR_BASE / "doc" / "_static" / "images" / "favicon.png") |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 167 | html_static_path = [str(ZEPHYR_BASE / "doc" / "_static")] |
| 168 | html_last_updated_fmt = "%b %d, %Y" |
Carol Lee | 1aa7733 | 2015-08-07 13:22:27 -0400 | [diff] [blame] | 169 | html_domain_indices = False |
Carol Lee | 1aa7733 | 2015-08-07 13:22:27 -0400 | [diff] [blame] | 170 | html_split_index = True |
David B. Kinder | f3f266e | 2018-07-31 13:47:10 -0700 | [diff] [blame] | 171 | html_show_sourcelink = False |
Rodrigo Caballero | 8d7b52f | 2015-10-16 09:30:15 -0500 | [diff] [blame] | 172 | html_show_sphinx = False |
Gerard Marull-Paretas | 2d06ad7 | 2021-05-19 12:25:16 +0200 | [diff] [blame] | 173 | html_search_scorer = str(ZEPHYR_BASE / "doc" / "_static" / "js" / "scorer.js") |
Benjamin Cabé | 7e253ff | 2023-11-07 11:32:08 +0100 | [diff] [blame] | 174 | html_additional_pages = { |
| 175 | "gsearch": "gsearch.html" |
| 176 | } |
Anas Nashif | 06d380c | 2015-05-13 14:05:30 -0400 | [diff] [blame] | 177 | |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 178 | is_release = tags.has("release") # pylint: disable=undefined-variable |
Gerard Marull-Paretas | b4f968c | 2021-10-28 18:57:20 +0200 | [diff] [blame] | 179 | reference_prefix = "" |
| 180 | if tags.has("publish"): # pylint: disable=undefined-variable |
| 181 | reference_prefix = f"/{version}" if is_release else "/latest" |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 182 | docs_title = "Docs / {}".format(version if is_release else "Latest") |
Rodrigo Caballero | 8d7b52f | 2015-10-16 09:30:15 -0500 | [diff] [blame] | 183 | html_context = { |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 184 | "show_license": True, |
| 185 | "docs_title": docs_title, |
| 186 | "is_release": is_release, |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 187 | "current_version": version, |
| 188 | "versions": ( |
| 189 | ("latest", "/"), |
Maureen Helm | 7c7b5fb | 2024-02-23 11:29:16 -0600 | [diff] [blame] | 190 | ("3.6.0", "/3.6.0/"), |
Johan Hedberg | 0d907c7 | 2023-10-20 09:42:16 +0300 | [diff] [blame] | 191 | ("3.5.0", "/3.5.0/"), |
Christopher Friedt | b14f7d0 | 2024-03-01 18:10:23 -0500 | [diff] [blame^] | 192 | ("2.7.6 (LTS)", "/2.7.6/"), |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 193 | ), |
Benjamin Cabé | 353f42d | 2023-10-25 12:12:02 +0200 | [diff] [blame] | 194 | "display_gh_links": True, |
Gerard Marull-Paretas | b4f968c | 2021-10-28 18:57:20 +0200 | [diff] [blame] | 195 | "reference_links": { |
| 196 | "API": f"{reference_prefix}/doxygen/html/index.html", |
Gerard Marull-Paretas | fc942ef | 2022-01-12 13:41:15 +0100 | [diff] [blame] | 197 | "Kconfig Options": f"{reference_prefix}/kconfig.html", |
Anas Nashif | 6e9a43b | 2022-04-05 10:17:26 -0400 | [diff] [blame] | 198 | "Devicetree Bindings": f"{reference_prefix}/build/dts/api/bindings.html", |
Anas Nashif | ebc8fda | 2023-10-02 11:48:32 +0000 | [diff] [blame] | 199 | "West Projects": f"{reference_prefix}/develop/manifest/index.html", |
Benjamin Cabé | 7688f48 | 2023-07-04 17:20:09 +0200 | [diff] [blame] | 200 | }, |
| 201 | # Set google_searchengine_id to your Search Engine ID to replace built-in search |
| 202 | # engine with Google's Programmable Search Engine. |
| 203 | # See https://programmablesearchengine.google.com/ for details. |
| 204 | "google_searchengine_id": "746031aa0d56d4912", |
Rodrigo Caballero | 8d7b52f | 2015-10-16 09:30:15 -0500 | [diff] [blame] | 205 | } |
Anas Nashif | b7b2318 | 2017-01-03 14:43:02 -0500 | [diff] [blame] | 206 | |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 207 | # -- Options for LaTeX output --------------------------------------------- |
| 208 | |
| 209 | latex_elements = { |
Gerard Marull-Paretas | 2f5a9d0 | 2021-07-22 16:14:51 +0200 | [diff] [blame] | 210 | "papersize": "a4paper", |
| 211 | "maketitle": open(ZEPHYR_BASE / "doc" / "_static" / "latex" / "title.tex").read(), |
| 212 | "preamble": open(ZEPHYR_BASE / "doc" / "_static" / "latex" / "preamble.tex").read(), |
Benjamin Cabé | abc3340 | 2023-11-06 12:39:57 +0100 | [diff] [blame] | 213 | "makeindex": r"\usepackage[columns=1]{idxlayout}\makeindex", |
Benjamin Cabé | 472def9 | 2023-10-19 18:46:47 +0200 | [diff] [blame] | 214 | "fontpkg": textwrap.dedent(r""" |
| 215 | \usepackage{noto} |
| 216 | \usepackage{inconsolata-nerd-font} |
| 217 | \usepackage[T1]{fontenc} |
| 218 | """), |
Gerard Marull-Paretas | 2f5a9d0 | 2021-07-22 16:14:51 +0200 | [diff] [blame] | 219 | "sphinxsetup": ",".join( |
| 220 | ( |
| 221 | # NOTE: colors match those found in light.css stylesheet |
| 222 | "verbatimwithframe=false", |
| 223 | "VerbatimColor={HTML}{f0f2f4}", |
| 224 | "InnerLinkColor={HTML}{2980b9}", |
| 225 | "warningBgColor={HTML}{e9a499}", |
| 226 | "warningborder=0pt", |
| 227 | r"HeaderFamily=\rmfamily\bfseries", |
| 228 | ) |
| 229 | ), |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 230 | } |
Gerard Marull-Paretas | 2f5a9d0 | 2021-07-22 16:14:51 +0200 | [diff] [blame] | 231 | latex_logo = str(ZEPHYR_BASE / "doc" / "_static" / "images" / "logo-latex.pdf") |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 232 | latex_documents = [ |
Gerard Marull-Paretas | 2f5a9d0 | 2021-07-22 16:14:51 +0200 | [diff] [blame] | 233 | ("index-tex", "zephyr.tex", "Zephyr Project Documentation", author, "manual"), |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 234 | ] |
Benjamin Cabé | 201b666 | 2023-10-19 18:42:53 +0200 | [diff] [blame] | 235 | latex_engine = "xelatex" |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 236 | |
Gerard Marull-Paretas | 457f3a4 | 2021-04-16 10:47:43 +0200 | [diff] [blame] | 237 | # -- Options for zephyr.doxyrunner plugin --------------------------------- |
| 238 | |
| 239 | doxyrunner_doxygen = os.environ.get("DOXYGEN_EXECUTABLE", "doxygen") |
| 240 | doxyrunner_doxyfile = ZEPHYR_BASE / "doc" / "zephyr.doxyfile.in" |
| 241 | doxyrunner_outdir = ZEPHYR_BUILD / "doxygen" |
| 242 | doxyrunner_fmt = True |
Gerard Marull-Paretas | a42ee8b | 2021-10-03 19:32:42 +0200 | [diff] [blame] | 243 | doxyrunner_fmt_vars = {"ZEPHYR_BASE": str(ZEPHYR_BASE), "ZEPHYR_VERSION": version} |
Gerard Marull-Paretas | ab64a67 | 2022-01-10 12:35:31 +0100 | [diff] [blame] | 244 | doxyrunner_outdir_var = "DOXY_OUT" |
Gerard Marull-Paretas | 457f3a4 | 2021-04-16 10:47:43 +0200 | [diff] [blame] | 245 | |
Benjamin Cabé | 69fcc52 | 2023-08-09 17:52:13 +0200 | [diff] [blame] | 246 | # -- Options for Breathe plugin ------------------------------------------- |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 247 | |
Benjamin Cabé | 69fcc52 | 2023-08-09 17:52:13 +0200 | [diff] [blame] | 248 | breathe_projects = {"Zephyr": str(doxyrunner_outdir / "xml")} |
| 249 | breathe_default_project = "Zephyr" |
| 250 | breathe_domain_by_extension = { |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 251 | "h": "c", |
| 252 | "c": "c", |
| 253 | } |
Benjamin Cabé | 69fcc52 | 2023-08-09 17:52:13 +0200 | [diff] [blame] | 254 | breathe_show_enumvalue_initializer = True |
| 255 | breathe_default_members = ("members", ) |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 256 | |
| 257 | cpp_id_attributes = [ |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 258 | "__syscall", |
Carlo Caione | de90dfc | 2023-04-20 17:04:55 +0200 | [diff] [blame] | 259 | "__syscall_always_inline", |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 260 | "__deprecated", |
| 261 | "__may_alias", |
| 262 | "__used", |
| 263 | "__unused", |
| 264 | "__weak", |
Nicolas Pitre | 0dc7b9e | 2021-04-09 00:40:41 -0400 | [diff] [blame] | 265 | "__attribute_const__", |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 266 | "__DEPRECATED_MACRO", |
| 267 | "FUNC_NORETURN", |
| 268 | "__subsystem", |
Christopher Friedt | f2d675b | 2022-02-01 15:30:19 -0500 | [diff] [blame] | 269 | "ALWAYS_INLINE", |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 270 | ] |
| 271 | c_id_attributes = cpp_id_attributes |
| 272 | |
| 273 | # -- Options for html_redirect plugin ------------------------------------- |
| 274 | |
| 275 | html_redirect_pages = redirects.REDIRECTS |
| 276 | |
Gerard Marull-Paretas | 96c7d10 | 2021-04-06 00:02:03 +0200 | [diff] [blame] | 277 | # -- Options for zephyr.warnings_filter ----------------------------------- |
| 278 | |
| 279 | warnings_filter_config = str(ZEPHYR_BASE / "doc" / "known-warnings.txt") |
Gerard Marull-Paretas | 96c7d10 | 2021-04-06 00:02:03 +0200 | [diff] [blame] | 280 | |
Gaute Svanes Lunde | 6acdb1b | 2022-10-12 15:29:10 +0200 | [diff] [blame] | 281 | # -- Options for zephyr.link-roles ---------------------------------------- |
| 282 | |
| 283 | link_roles_manifest_project = "zephyr" |
| 284 | link_roles_manifest_baseurl = "https://github.com/zephyrproject-rtos/zephyr" |
| 285 | |
Gerard Marull-Paretas | 95d8d2c | 2021-05-19 16:04:20 +0200 | [diff] [blame] | 286 | # -- Options for notfound.extension --------------------------------------- |
| 287 | |
Gerard Marull-Paretas | 45cce73 | 2021-06-22 11:16:25 +0200 | [diff] [blame] | 288 | notfound_urls_prefix = f"/{version}/" if is_release else "/latest/" |
Gerard Marull-Paretas | 95d8d2c | 2021-05-19 16:04:20 +0200 | [diff] [blame] | 289 | |
Benjamin Cabé | 353f42d | 2023-10-25 12:12:02 +0200 | [diff] [blame] | 290 | # -- Options for zephyr.gh_utils ------------------------------------------ |
Gerard Marull-Paretas | fe7529f | 2021-06-28 20:08:13 +0200 | [diff] [blame] | 291 | |
Benjamin Cabé | 353f42d | 2023-10-25 12:12:02 +0200 | [diff] [blame] | 292 | gh_link_version = f"v{version}" if is_release else "main" |
| 293 | gh_link_base_url = f"https://github.com/zephyrproject-rtos/zephyr" |
| 294 | gh_link_prefixes = { |
Gerard Marull-Paretas | fe7529f | 2021-06-28 20:08:13 +0200 | [diff] [blame] | 295 | "samples/.*": "", |
| 296 | "boards/.*": "", |
Marti Bolivar | ee4b134 | 2023-01-09 15:46:59 -0800 | [diff] [blame] | 297 | "snippets/.*": "", |
Gerard Marull-Paretas | fe7529f | 2021-06-28 20:08:13 +0200 | [diff] [blame] | 298 | ".*": "doc", |
| 299 | } |
Benjamin Cabé | 353f42d | 2023-10-25 12:12:02 +0200 | [diff] [blame] | 300 | gh_link_exclude = [ |
Gerard Marull-Paretas | fe7529f | 2021-06-28 20:08:13 +0200 | [diff] [blame] | 301 | "reference/kconfig.*", |
Anas Nashif | 6e9a43b | 2022-04-05 10:17:26 -0400 | [diff] [blame] | 302 | "build/dts/api/bindings.*", |
| 303 | "build/dts/api/compatibles.*", |
Gerard Marull-Paretas | fe7529f | 2021-06-28 20:08:13 +0200 | [diff] [blame] | 304 | ] |
| 305 | |
Gerard Marull-Paretas | fc942ef | 2022-01-12 13:41:15 +0100 | [diff] [blame] | 306 | # -- Options for zephyr.kconfig ------------------------------------------- |
| 307 | |
| 308 | kconfig_generate_db = True |
| 309 | kconfig_ext_paths = [ZEPHYR_BASE] |
| 310 | |
Gerard Marull-Paretas | 4dd1553 | 2021-05-10 19:11:14 +0200 | [diff] [blame] | 311 | # -- Options for zephyr.external_content ---------------------------------- |
| 312 | |
| 313 | external_content_contents = [ |
| 314 | (ZEPHYR_BASE / "doc", "[!_]*"), |
| 315 | (ZEPHYR_BASE, "boards/**/*.rst"), |
| 316 | (ZEPHYR_BASE, "boards/**/doc"), |
Andrei Emeltchenko | 0aaa5a9 | 2023-09-08 13:01:57 +0300 | [diff] [blame] | 317 | (ZEPHYR_BASE, "samples/**/*.html"), |
Gerard Marull-Paretas | 4dd1553 | 2021-05-10 19:11:14 +0200 | [diff] [blame] | 318 | (ZEPHYR_BASE, "samples/**/*.rst"), |
| 319 | (ZEPHYR_BASE, "samples/**/doc"), |
Marti Bolivar | ee4b134 | 2023-01-09 15:46:59 -0800 | [diff] [blame] | 320 | (ZEPHYR_BASE, "snippets/**/*.rst"), |
| 321 | (ZEPHYR_BASE, "snippets/**/doc"), |
Gerard Marull-Paretas | 4dd1553 | 2021-05-10 19:11:14 +0200 | [diff] [blame] | 322 | ] |
| 323 | external_content_keep = [ |
| 324 | "reference/kconfig/*", |
Anas Nashif | dd7532d | 2023-08-31 12:59:14 +0000 | [diff] [blame] | 325 | "develop/manifest/index.rst", |
Anas Nashif | 6e9a43b | 2022-04-05 10:17:26 -0400 | [diff] [blame] | 326 | "build/dts/api/bindings.rst", |
| 327 | "build/dts/api/bindings/**/*", |
| 328 | "build/dts/api/compatibles/**/*", |
Gerard Marull-Paretas | 4dd1553 | 2021-05-10 19:11:14 +0200 | [diff] [blame] | 329 | ] |
| 330 | |
Gerard Marull-Paretas | 9e5e8e8 | 2024-01-09 15:34:14 +0100 | [diff] [blame] | 331 | # -- Options for zephyr.domain -------------------------------------------- |
| 332 | |
| 333 | zephyr_breathe_insert_related_samples = True |
| 334 | |
Gerard Marull-Paretas | 4127138 | 2021-07-20 16:12:23 +0200 | [diff] [blame] | 335 | # -- Options for sphinx.ext.graphviz -------------------------------------- |
| 336 | |
| 337 | graphviz_dot = os.environ.get("DOT_EXECUTABLE", "dot") |
| 338 | graphviz_output_format = "svg" |
| 339 | graphviz_dot_args = [ |
| 340 | "-Gbgcolor=transparent", |
| 341 | "-Nstyle=filled", |
| 342 | "-Nfillcolor=white", |
| 343 | "-Ncolor=gray60", |
| 344 | "-Nfontcolor=gray25", |
| 345 | "-Ecolor=gray60", |
| 346 | ] |
| 347 | |
Benjamin Cabé | b3a52f4 | 2023-10-17 22:38:31 -0400 | [diff] [blame] | 348 | # -- Options for sphinx_copybutton ---------------------------------------- |
| 349 | |
| 350 | copybutton_prompt_text = r"\$ |uart:~\$ " |
| 351 | copybutton_prompt_is_regexp = True |
| 352 | |
Gerard Marull-Paretas | 603e875 | 2021-03-30 13:09:11 +0200 | [diff] [blame] | 353 | # -- Linkcheck options ---------------------------------------------------- |
Anas Nashif | 38a7779 | 2019-01-20 08:56:48 -0500 | [diff] [blame] | 354 | |
Benjamin Cabé | d3487c4 | 2023-10-18 08:23:55 -0400 | [diff] [blame] | 355 | linkcheck_ignore = [ |
| 356 | r"https://github.com/zephyrproject-rtos/zephyr/issues/.*" |
| 357 | ] |
| 358 | |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 359 | extlinks = { |
Gerard Marull-Paretas | 2a93e8c | 2022-08-11 18:01:47 +0200 | [diff] [blame] | 360 | "github": ("https://github.com/zephyrproject-rtos/zephyr/issues/%s", "GitHub #%s"), |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 361 | } |
David B. Kinder | 2a1adfc | 2017-04-27 14:59:04 -0700 | [diff] [blame] | 362 | |
| 363 | linkcheck_timeout = 30 |
| 364 | linkcheck_workers = 10 |
David B. Kinder | 2a1adfc | 2017-04-27 14:59:04 -0700 | [diff] [blame] | 365 | linkcheck_anchors = False |
| 366 | |
Gerard Marull-Paretas | f4edff0 | 2021-03-30 14:50:25 +0200 | [diff] [blame] | 367 | |
David B. Kinder | 6bd5dff | 2017-01-27 16:20:21 -0800 | [diff] [blame] | 368 | def setup(app): |
Gerard Marull-Paretas | a6d8c23 | 2021-03-12 14:33:16 +0100 | [diff] [blame] | 369 | # theme customizations |
| 370 | app.add_css_file("css/custom.css") |
Benjamin Cabé | 29b19bc | 2023-12-05 15:17:47 +0100 | [diff] [blame] | 371 | app.add_js_file("js/custom.js") |
Gerard Marull-Paretas | a6d8c23 | 2021-03-12 14:33:16 +0100 | [diff] [blame] | 372 | app.add_js_file("js/dark-mode-toggle.min.mjs", type="module") |