Add doxygen and graphviz support

This commit is contained in:
Cristian Le 2023-06-27 11:16:09 +02:00
parent 9353afec99
commit 751e39c35b
Failed to extract signature
3 changed files with 31 additions and 5 deletions

View File

@ -7,6 +7,9 @@ python:
- docs
build:
os: ubuntu-22.04
apt_packages:
- doxygen
- graphviz
tools:
python: "3.11"
sphinx:

View File

@ -57,7 +57,7 @@ PROJECT_BRIEF = "Popular C++ unit testing framework"
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
OUTPUT_DIRECTORY = docs/doxygen
OUTPUT_DIRECTORY = docs/build/doxygen
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@ -1088,7 +1088,7 @@ IGNORE_PREFIX =
# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
# The default value is: YES.
GENERATE_HTML = YES
GENERATE_HTML = NO
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
@ -1946,7 +1946,7 @@ MAN_LINKS = NO
# captures the structure of the code including all documentation.
# The default value is: NO.
GENERATE_XML = NO
GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of

View File

@ -1,3 +1,9 @@
import os
import subprocess
from sphinx.application import Sphinx
from pathlib import Path
project = 'Catch2'
copyright = '2023, Martin Hořeňovský'
author = 'Martin Hořeňovský'
@ -19,7 +25,6 @@ exclude_patterns = [
]
source_suffix = [".md"]
html_theme = 'furo'
# html_static_path = ['_static']
@ -27,3 +32,21 @@ myst_enable_extensions = [
"tasklist",
"colon_fence",
]
breathe_projects = {
"Catch2": "build/doxygen/xml",
}
breathe_default_project = "Catch2"
def generate_doxygen_xml(app: Sphinx):
"""
Run the doxygen commands
"""
os.chdir(Path(app.confdir).parent)
subprocess.run(["doxygen"])
def setup(app: Sphinx):
# Add hook for building doxygen xml when needed
app.connect("builder-inited", generate_doxygen_xml)