Merge pull request #7307 from Mbed-TLS/sphinx-versioned-documentation
Generate API documentation with Sphinx and Breathe
This commit is contained in:
commit
05c5a91514
9 changed files with 201 additions and 1 deletions
26
.readthedocs.yaml
Normal file
26
.readthedocs.yaml
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# .readthedocs.yaml
|
||||||
|
# Read the Docs configuration file
|
||||||
|
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
||||||
|
|
||||||
|
# Required
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
# Set the version of Python and other tools you might need
|
||||||
|
build:
|
||||||
|
os: ubuntu-20.04
|
||||||
|
tools:
|
||||||
|
python: "3.9"
|
||||||
|
jobs:
|
||||||
|
pre_build:
|
||||||
|
- make apidoc
|
||||||
|
- breathe-apidoc -o docs/api apidoc/xml
|
||||||
|
|
||||||
|
# Build documentation in the docs/ directory with Sphinx
|
||||||
|
sphinx:
|
||||||
|
builder: dirhtml
|
||||||
|
configuration: docs/conf.py
|
||||||
|
|
||||||
|
# Optionally declare the Python requirements required to build your docs
|
||||||
|
python:
|
||||||
|
install:
|
||||||
|
- requirements: docs/requirements.txt
|
2
docs/.gitignore
vendored
2
docs/.gitignore
vendored
|
@ -1,2 +1,4 @@
|
||||||
*.html
|
*.html
|
||||||
*.pdf
|
*.pdf
|
||||||
|
_build/
|
||||||
|
api/
|
||||||
|
|
40
docs/Makefile
Normal file
40
docs/Makefile
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# Minimal makefile for Sphinx documentation
|
||||||
|
#
|
||||||
|
|
||||||
|
# You can set these variables from the command line, and also
|
||||||
|
# from the environment for the first two.
|
||||||
|
SPHINXOPTS ?=
|
||||||
|
SPHINXBUILD ?= sphinx-build
|
||||||
|
SOURCEDIR = .
|
||||||
|
BUILDDIR = _build
|
||||||
|
|
||||||
|
# Put it first so that "make" without argument is like "make help".
|
||||||
|
help:
|
||||||
|
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||||
|
|
||||||
|
.PHONY: help clean apidoc breathe_apidoc Makefile
|
||||||
|
|
||||||
|
# Intercept the 'clean' target so we can do the right thing for apidoc as well
|
||||||
|
clean:
|
||||||
|
@# Clean the apidoc
|
||||||
|
$(MAKE) -C .. apidoc_clean
|
||||||
|
@# Clean the breathe-apidoc generated files
|
||||||
|
rm -rf ./api
|
||||||
|
@# Clean the sphinx docs
|
||||||
|
@$(SPHINXBUILD) -M clean "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||||
|
|
||||||
|
apidoc:
|
||||||
|
@# Generate doxygen from source using the main Makefile
|
||||||
|
$(MAKE) -C .. apidoc
|
||||||
|
|
||||||
|
breathe_apidoc: apidoc
|
||||||
|
@# Remove existing files - breathe-apidoc skips them if they're present
|
||||||
|
rm -rf ./api
|
||||||
|
@# Generate RST file structure with breathe-apidoc
|
||||||
|
breathe-apidoc -o ./api ../apidoc/xml
|
||||||
|
|
||||||
|
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||||
|
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||||
|
%: Makefile breathe_apidoc
|
||||||
|
@# Build the relevant target with sphinx
|
||||||
|
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
34
docs/conf.py
Normal file
34
docs/conf.py
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
# Configuration file for the Sphinx documentation builder.
|
||||||
|
#
|
||||||
|
# For the full list of built-in configuration values, see the documentation:
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||||
|
|
||||||
|
# -- Project information -----------------------------------------------------
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
||||||
|
import glob
|
||||||
|
|
||||||
|
project = 'Mbed TLS Versioned'
|
||||||
|
copyright = '2023, Mbed TLS Contributors'
|
||||||
|
author = 'Mbed TLS Contributors'
|
||||||
|
|
||||||
|
# -- General configuration ---------------------------------------------------
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||||
|
|
||||||
|
extensions = ['breathe', 'sphinx.ext.graphviz']
|
||||||
|
|
||||||
|
templates_path = ['_templates']
|
||||||
|
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||||
|
|
||||||
|
breathe_projects = {
|
||||||
|
'mbedtls-versioned': '../apidoc/xml'
|
||||||
|
}
|
||||||
|
breathe_default_project = 'mbedtls-versioned'
|
||||||
|
|
||||||
|
primary_domain = 'c'
|
||||||
|
highlight_language = 'c'
|
||||||
|
|
||||||
|
# -- Options for HTML output -------------------------------------------------
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
||||||
|
|
||||||
|
html_theme = 'sphinx_rtd_theme'
|
||||||
|
html_static_path = ['_static']
|
20
docs/index.rst
Normal file
20
docs/index.rst
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
.. Mbed TLS Versioned documentation master file, created by
|
||||||
|
sphinx-quickstart on Thu Feb 23 18:13:44 2023.
|
||||||
|
You can adapt this file completely to your liking, but it should at least
|
||||||
|
contain the root `toctree` directive.
|
||||||
|
|
||||||
|
Mbed TLS API documentation
|
||||||
|
==========================
|
||||||
|
|
||||||
|
.. doxygenpage:: index
|
||||||
|
:project: mbedtls-versioned
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:caption: Contents
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Home <self>
|
||||||
|
api/grouplist.rst
|
||||||
|
api/filelist.rst
|
||||||
|
api/structlist.rst
|
||||||
|
api/unionlist.rst
|
2
docs/requirements.in
Normal file
2
docs/requirements.in
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
sphinx-rtd-theme
|
||||||
|
breathe
|
66
docs/requirements.txt
Normal file
66
docs/requirements.txt
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
#
|
||||||
|
# This file is autogenerated by pip-compile with Python 3.9
|
||||||
|
# by the following command:
|
||||||
|
#
|
||||||
|
# pip-compile requirements.in
|
||||||
|
#
|
||||||
|
alabaster==0.7.13
|
||||||
|
# via sphinx
|
||||||
|
babel==2.12.1
|
||||||
|
# via sphinx
|
||||||
|
breathe==4.35.0
|
||||||
|
# via -r requirements.in
|
||||||
|
certifi==2022.12.7
|
||||||
|
# via requests
|
||||||
|
charset-normalizer==3.1.0
|
||||||
|
# via requests
|
||||||
|
docutils==0.17.1
|
||||||
|
# via
|
||||||
|
# breathe
|
||||||
|
# sphinx
|
||||||
|
# sphinx-rtd-theme
|
||||||
|
idna==3.4
|
||||||
|
# via requests
|
||||||
|
imagesize==1.4.1
|
||||||
|
# via sphinx
|
||||||
|
importlib-metadata==6.0.0
|
||||||
|
# via sphinx
|
||||||
|
jinja2==3.1.2
|
||||||
|
# via sphinx
|
||||||
|
markupsafe==2.1.2
|
||||||
|
# via jinja2
|
||||||
|
packaging==23.0
|
||||||
|
# via sphinx
|
||||||
|
pygments==2.14.0
|
||||||
|
# via sphinx
|
||||||
|
requests==2.28.2
|
||||||
|
# via sphinx
|
||||||
|
snowballstemmer==2.2.0
|
||||||
|
# via sphinx
|
||||||
|
sphinx==4.5.0
|
||||||
|
# via
|
||||||
|
# breathe
|
||||||
|
# sphinx-rtd-theme
|
||||||
|
sphinx-rtd-theme==1.2.0
|
||||||
|
# via -r requirements.in
|
||||||
|
sphinxcontrib-applehelp==1.0.4
|
||||||
|
# via sphinx
|
||||||
|
sphinxcontrib-devhelp==1.0.2
|
||||||
|
# via sphinx
|
||||||
|
sphinxcontrib-htmlhelp==2.0.1
|
||||||
|
# via sphinx
|
||||||
|
sphinxcontrib-jquery==2.0.0
|
||||||
|
# via sphinx-rtd-theme
|
||||||
|
sphinxcontrib-jsmath==1.0.1
|
||||||
|
# via sphinx
|
||||||
|
sphinxcontrib-qthelp==1.0.3
|
||||||
|
# via sphinx
|
||||||
|
sphinxcontrib-serializinghtml==1.1.5
|
||||||
|
# via sphinx
|
||||||
|
urllib3==1.26.15
|
||||||
|
# via requests
|
||||||
|
zipp==3.15.0
|
||||||
|
# via importlib-metadata
|
||||||
|
|
||||||
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
|
# setuptools
|
|
@ -18,6 +18,7 @@ HTML_OUTPUT = .
|
||||||
HTML_TIMESTAMP = YES
|
HTML_TIMESTAMP = YES
|
||||||
SEARCHENGINE = YES
|
SEARCHENGINE = YES
|
||||||
GENERATE_LATEX = NO
|
GENERATE_LATEX = NO
|
||||||
|
GENERATE_XML = YES
|
||||||
MACRO_EXPANSION = YES
|
MACRO_EXPANSION = YES
|
||||||
EXPAND_ONLY_PREDEF = YES
|
EXPAND_ONLY_PREDEF = YES
|
||||||
INCLUDE_PATH = ../include
|
INCLUDE_PATH = ../include
|
||||||
|
@ -42,3 +43,12 @@ DOT_TRANSPARENT = YES
|
||||||
# \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
# \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
||||||
# This avoids writing redundant text and keeps Clang happy.
|
# This avoids writing redundant text and keeps Clang happy.
|
||||||
ALIASES += emptydescription=""
|
ALIASES += emptydescription=""
|
||||||
|
|
||||||
|
# Define away Mbed TLS macros that make parsing definitions difficult.
|
||||||
|
# MBEDTLS_DEPRECATED is not included in this list as it's important to
|
||||||
|
# display deprecated status in the documentation.
|
||||||
|
PREDEFINED = "MBEDTLS_CHECK_RETURN_CRITICAL=" \
|
||||||
|
"MBEDTLS_CHECK_RETURN_TYPICAL=" \
|
||||||
|
"MBEDTLS_CHECK_RETURN_OPTIONAL=" \
|
||||||
|
"MBEDTLS_PRINTF_ATTRIBUTE(a,b)=" \
|
||||||
|
|
||||||
|
|
|
@ -1005,7 +1005,7 @@ int mbedtls_mpi_inv_mod(mbedtls_mpi *X, const mbedtls_mpi *A,
|
||||||
* This must point to an initialized MPI.
|
* This must point to an initialized MPI.
|
||||||
* \param rounds The number of bases to perform the Miller-Rabin primality
|
* \param rounds The number of bases to perform the Miller-Rabin primality
|
||||||
* test for. The probability of returning 0 on a composite is
|
* test for. The probability of returning 0 on a composite is
|
||||||
* at most 2<sup>-2*\p rounds</sup>.
|
* at most 2<sup>-2*\p rounds </sup>.
|
||||||
* \param f_rng The RNG function to use. This must not be \c NULL.
|
* \param f_rng The RNG function to use. This must not be \c NULL.
|
||||||
* \param p_rng The RNG parameter to be passed to \p f_rng.
|
* \param p_rng The RNG parameter to be passed to \p f_rng.
|
||||||
* This may be \c NULL if \p f_rng doesn't use
|
* This may be \c NULL if \p f_rng doesn't use
|
||||||
|
|
Loading…
Reference in a new issue