Skip to content

Commit cf59381

Browse files
committed
[doxygen] Update Doxyfile and Makefile
- Enable sorting of groups in the treeview - Enable right-hand side scrolling site overview - Add "make preview" for a fast preview mode without ROOT customisations, with MT processing, and without dot graphs - Enable inlining of inherited members into the overview of class functions
1 parent 81c756d commit cf59381

2 files changed

Lines changed: 86 additions & 18 deletions

File tree

documentation/doxygen/Doxyfile

Lines changed: 71 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ ALWAYS_DETAILED_SEC = YES
165165
# operators of the base classes will not be shown.
166166
# The default value is: NO.
167167

168-
INLINE_INHERITED_MEMB = NO
168+
INLINE_INHERITED_MEMB = YES
169169

170170
# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
171171
# before files name in the file list and in the header files. If set to NO the
@@ -359,6 +359,20 @@ EXTENSION_MAPPING = h=C++ \
359359

360360
MARKDOWN_SUPPORT = YES
361361

362+
# If the MARKDOWN_STRICT tag is enabled then doxygen treats text in comments as
363+
# Markdown formatted also in cases where doxygen's native markup format
364+
# conflicts with that of Markdown. This is only relevant in cases where
365+
# backticks are used. doxygen's native markup style allows a single quote to end
366+
# a text fragment started with a backtick and then treat it as a piece of quoted
367+
# text, whereas in Markdown such text fragment is treated as verbatim and only
368+
# ends when a second matching backtick is found. Also, doxygen's native markup
369+
# format requires double quotes to be escaped when they appear in a backtick
370+
# section, whereas this is not needed for Markdown.
371+
# The default value is: YES.
372+
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
373+
374+
MARKDOWN_STRICT = YES
375+
362376
# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
363377
# to that level are automatically included in the table of contents, even if
364378
# they do not have an id attribute.
@@ -488,7 +502,7 @@ TYPEDEF_HIDES_STRUCT = NO
488502
# the optimal cache size from a speed point of view.
489503
# Minimum value: 0, maximum value: 9, default value: 0.
490504

491-
LOOKUP_CACHE_SIZE = 4
505+
LOOKUP_CACHE_SIZE = 6
492506

493507
# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use
494508
# during processing. When set to 0 doxygen will based this on the number of
@@ -499,9 +513,9 @@ LOOKUP_CACHE_SIZE = 4
499513
# which effectively disables parallel processing. Please report any issues you
500514
# encounter. Generating dot graphs in parallel is controlled by the
501515
# DOT_NUM_THREADS setting.
502-
# Minimum value: 0, maximum value: 32, default value: 1.
516+
# Minimum value: 0, maximum value: 512, default value: 1.
503517

504-
NUM_PROC_THREADS = 1
518+
NUM_PROC_THREADS = $(DOXYGEN_NUM_THREADS)
505519

506520
# If the TIMESTAMP tag is set different from NO then each generated page will
507521
# contain the date or date and time when the page was generated. Setting this to
@@ -598,6 +612,14 @@ HIDE_UNDOC_MEMBERS = NO
598612

599613
HIDE_UNDOC_CLASSES = NO
600614

615+
# If the HIDE_UNDOC_NAMESPACES tag is set to YES, doxygen will hide all
616+
# undocumented namespaces that are normally visible in the namespace hierarchy.
617+
# If set to NO, these namespaces will be included in the various overviews. This
618+
# option has no effect if EXTRACT_ALL is enabled.
619+
# The default value is: YES.
620+
621+
HIDE_UNDOC_NAMESPACES = YES
622+
601623
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
602624
# declarations. If set to NO, these declarations will be included in the
603625
# documentation.
@@ -713,7 +735,7 @@ SORT_MEMBERS_CTORS_1ST = YES
713735
# appear in their defined order.
714736
# The default value is: NO.
715737

716-
SORT_GROUP_NAMES = NO
738+
SORT_GROUP_NAMES = YES
717739

718740
# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
719741
# fully-qualified names, including namespaces. If set to NO, the class list will
@@ -892,6 +914,14 @@ WARN_NO_PARAMDOC = NO
892914

893915
WARN_IF_UNDOC_ENUM_VAL = NO
894916

917+
# If WARN_LAYOUT_FILE option is set to YES, doxygen will warn about issues found
918+
# while parsing the user defined layout file, such as missing or wrong elements.
919+
# See also LAYOUT_FILE for details. If set to NO, problems with the layout file
920+
# will be suppressed.
921+
# The default value is: YES.
922+
923+
WARN_LAYOUT_FILE = YES
924+
895925
# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
896926
# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS
897927
# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but
@@ -1044,7 +1074,23 @@ RECURSIVE = YES
10441074
# Note that relative paths are relative to the directory from which doxygen is
10451075
# run.
10461076

1047-
EXCLUDE =
1077+
EXCLUDE = ../../interpreter/ \
1078+
../../roottest/ \
1079+
../../README/ \
1080+
../../ui5 \
1081+
../../cmake \
1082+
../../etc \
1083+
../../js \
1084+
../../core/clib/ \
1085+
../../core/lzma/ \
1086+
../../core/newdelete/ \
1087+
../../core/textinput/ \
1088+
../../graf2d/mathtext/ \
1089+
../../graf3d/ftgl/ \
1090+
../../graf3d/x3d/ \
1091+
../../net/rootd/ \
1092+
../../net/rpdutils/ \
1093+
../../documentation/doxygen/html
10481094

10491095
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
10501096
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -1141,7 +1187,7 @@ IMAGE_PATH = $(DOXYGEN_OUTPUT_DIRECTORY)/html
11411187
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
11421188
# properly processed by doxygen.
11431189

1144-
INPUT_FILTER = ./filter
1190+
INPUT_FILTER = $(DOXYGEN_INPUT_FILTER)
11451191

11461192
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
11471193
# basis. Doxygen will compare the file name with each pattern and apply the
@@ -1704,13 +1750,22 @@ DISABLE_INDEX = YES
17041750

17051751
GENERATE_TREEVIEW = YES
17061752

1707-
# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the
1708-
# FULL_SIDEBAR option determines if the side bar is limited to only the treeview
1709-
# area (value NO) or if it should extend to the full height of the window (value
1710-
# YES). Setting this to YES gives a layout similar to
1711-
# https://docs.readthedocs.io with more room for contents, but less room for the
1712-
# project logo, title, and description. If either GENERATE_TREEVIEW or
1713-
# DISABLE_INDEX is set to NO, this option has no effect.
1753+
# When GENERATE_TREEVIEW is set to YES, the PAGE_OUTLINE_PANEL option determines
1754+
# if an additional navigation panel is shown at the right hand side of the
1755+
# screen, displaying an outline of the contents of the main page, similar to
1756+
# e.g. https://developer.android.com/reference If GENERATE_TREEVIEW is set to
1757+
# NO, this option has no effect.
1758+
# The default value is: YES.
1759+
# This tag requires that the tag GENERATE_HTML is set to YES.
1760+
1761+
PAGE_OUTLINE_PANEL = YES
1762+
1763+
# When GENERATE_TREEVIEW is set to YES, the FULL_SIDEBAR option determines if
1764+
# the side bar is limited to only the treeview area (value NO) or if it should
1765+
# extend to the full height of the window (value YES). Setting this to YES gives
1766+
# a layout similar to e.g. https://docs.readthedocs.io with more room for
1767+
# contents, but less room for the project logo, title, and description. If
1768+
# GENERATE_TREEVIEW is set to NO, this option has no effect.
17141769
# The default value is: NO.
17151770
# This tag requires that the tag GENERATE_HTML is set to YES.
17161771

@@ -1731,7 +1786,7 @@ ENUM_VALUES_PER_LINE = 4
17311786
# Minimum value: 0, maximum value: 1500, default value: 250.
17321787
# This tag requires that the tag GENERATE_HTML is set to YES.
17331788

1734-
TREEVIEW_WIDTH = 250
1789+
TREEVIEW_WIDTH = 200
17351790

17361791
# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
17371792
# external symbols imported via tag files in a separate window.
@@ -2480,7 +2535,7 @@ HIDE_UNDOC_RELATIONS = NO
24802535
# set to NO
24812536
# The default value is: NO.
24822537

2483-
HAVE_DOT = YES
2538+
HAVE_DOT = $(DOXYGEN_HAVE_DOT)
24842539

24852540
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
24862541
# to run in parallel. When set to 0 doxygen will base this on the number of

documentation/doxygen/Makefile

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ export DOXYGEN_STRIP_PATH := $(shell cd $(PWD)/../..; pwd)
2727
export DOXYGEN_INCLUDE_PATH := $(shell find $(DOXYGEN_STRIP_PATH) -type d -name dictpch -prune -o -type d -name inc)
2828
export DOXYGEN_PYZDOC_PATH := $(DOXYGEN_OUTPUT_DIRECTORY)/pyzdoc
2929
export DOXYGEN_STRIP_FROM_PATH := $(DOXYGEN_STRIP_PATH) $(DOXYGEN_OUTPUT_DIRECTORY)
30+
export DOXYGEN_NUM_THREADS := 1
31+
export DOXYGEN_INPUT_FILTER := ./filter
3032

3133
PYZ_DIR = $(DOXYGEN_SOURCE_DIRECTORY)/bindings/pyroot/pythonizations/python/ROOT/_pythonization
3234

@@ -36,6 +38,15 @@ endef
3638

3739
all: filter folders mathjax js images doxygen replaceCollaborationDiagrams notebooks rootWork
3840

41+
preview: export DOXYGEN_OUTPUT_DIRECTORY := /tmp/doxygen_preview
42+
preview: export DOXYGEN_NUM_THREADS := 0
43+
preview: export DOXYGEN_HAVE_DOT := NO
44+
preview: export DOXYGEN_INPUT_FILTER :=
45+
preview: htmlfooter
46+
echo "INPUT = ./mainpage.md ../.." > Doxyfile_INPUT
47+
doxygen Doxyfile
48+
echo "Your preview is in $(DOXYGEN_OUTPUT_DIRECTORY)"
49+
3950
filter:
4051
`root-config --cxx` -o filter filter.cxx -std=c++14 -O2
4152

@@ -56,12 +67,14 @@ pyzdoc:
5667
$(Python3_EXECUTABLE) extract_docstrings.py $(PYZ_DIR) $(DOXYGEN_PYZDOC_PATH)
5768
$(Python3_EXECUTABLE) print_roofit_pyz_doctrings.py > $(DOXYGEN_PYZDOC_PATH)/_roofit.pyzdoc
5869

59-
doxygen: filter pyzdoc
70+
htmlfooter:
71+
./makehtmlfooter.sh > htmlfooter.html
72+
73+
doxygen: filter pyzdoc htmlfooter
6074
rm -f tutorialWorklist_py tutorialWorklist_root
6175
$(call MkDir,$(DOXYGEN_OUTPUT_DIRECTORY))
6276
$(call MkDir,$(DOXYGEN_EXAMPLE_PATH))
6377
$(call MkDir,$(DOXYGEN_NOTEBOOK_PATH))
64-
./makehtmlfooter.sh > htmlfooter.html
6578
./makeinput.sh
6679
doxygen
6780
bash ./CleanNamespaces.sh

0 commit comments

Comments
 (0)