Files

93 lines
3.5 KiB
Plaintext

# Doxygen configuration for the Rizin API documentation.
#
# Only the tags that differ from the Doxygen defaults are listed, so that a
# Doxygen upgrade does not require regenerating the whole file. Run
# `python3 sys/doxygen.py` (or `ninja -C build doc`) to build the documentation
# with the Doxygen Awesome theme; plain `doxygen` still works but falls back to
# the stock Doxygen theme.
#---------------------------------------------------------------------------
# Project
#---------------------------------------------------------------------------
PROJECT_NAME = Rizin
PROJECT_BRIEF = "UNIX-like reverse engineering framework and command-line toolset"
PROJECT_LOGO = doc/img/rizin.svg
OUTPUT_DIRECTORY = doc/doxygen
#---------------------------------------------------------------------------
# Input
#---------------------------------------------------------------------------
# Only the libraries are part of the public API, the CLI tools are not.
INPUT = librz
FILE_PATTERNS = *.c \
*.h \
*.inc \
*.md
RECURSIVE = YES
# Vendored third party code carries its own documentation conventions.
EXCLUDE = librz/util/sdb/src
EXAMPLE_PATH = test/integration
IMAGE_PATH = doc/img
USE_MDFILE_AS_MAINPAGE = librz/README.md
#---------------------------------------------------------------------------
# Parsing
#---------------------------------------------------------------------------
OPTIMIZE_OUTPUT_FOR_C = YES
TAB_SIZE = 8
# Drop the annotation macros so that they do not end up in the signatures.
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = RZ_API= \
RZ_IPI= \
RZ_IN= \
RZ_OUT= \
RZ_INOUT= \
RZ_OWN= \
RZ_BORROW= \
RZ_NONNULL= \
RZ_NULLABLE= \
RZ_DEPRECATE= \
__attribute__(x)= \
MACH0_(x)=x \
PE_(x)=x \
HtName_(x)=x \
Ht_(x)=x \
HT_(x)=x
#---------------------------------------------------------------------------
# Diagnostics
#---------------------------------------------------------------------------
# Most of the code base is still undocumented, only report broken documentation
# so that the build can be kept warning free.
WARN_IF_UNDOCUMENTED = NO
# Left permissive on purpose: newer Doxygen releases keep tightening what counts
# as a broken reference. CI pins a version and turns warnings into errors with
# `sys/doxygen.py --warnings-as-errors` instead.
WARN_AS_ERROR = NO
#---------------------------------------------------------------------------
# Output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
# Set explicitly: the default flipped between Doxygen releases and generating
# the graphs needs Graphviz plus a multiple of the time the docs themselves take.
HAVE_DOT = NO
# Doxygen Awesome requires a treeview sidebar and its own color handling.
GENERATE_TREEVIEW = YES
HTML_COLORSTYLE = LIGHT
# Render formulas client side, so that building the docs needs no LaTeX.
USE_MATHJAX = YES