8000 Exploring cvc5 with Doxygen · cvc5/cvc5 Wiki · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Exploring cvc5 with Doxygen

Kartik Sabharwal edited this page Oct 19, 2024 · 1 revision

cvc5 has numerous classes, functions, and variables. You can use Doxygen to generate searchable documentation for the whole project, and get a better handle on the relationships between these entities.

This wiki entry follows the Doxygen documentation at https://doxygen.nl/manual/starting.html. The author of this wiki page has suggested some tweaks to the default configuration file generated by Doxygen. You are free to change this configuration to meet your needs.

Step 1. Install Doxygen according to the the official installation manual.

Step 2. Navigate to the top-level directory for cvc5. If you cloned the cvc5 GitHub repository into a directory called my-cvc5, then my-cvc5 will be your top-level directory.

Step 3. Generate a default Doxygen configuration file named my-cvc5-Doxyfile with the shell command

$ doxygen -g my-cvc5-Doxyfile

Step 4. Edit the following entries in the default configuration file, leaving the other entries unchanged. As mentioned earlier, the settings shown below reflect the preferences of the author of this wiki page. They are not hard requirements.

Project related configuration options.

PROJECT_NAME = cvc5
OUTPUT_DIRECTORY = my-cvc5-documentation
CREATE_SUBDIRS = YES
BUILTIN_STL_SUPPORT = YES
NUM_PROC_THREADS = 4
TIMESTAMP = DATETIME

Build related configuration options.

EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PRIV_VIRTUAL = YES
EXTRACT_PACKAGE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = YES
INTERNAL_DOCS = YES

Configuration options related to the input files.

INPUT = src include
FILE_PATTERNS  = *.c \
                 *.cc \
                 *.cxx \
                 *.cxxm \
                 *.cpp \
                 *.cppm \
                 *.ccm \
                 *.c++ \
                 *.c++m \
                 *.h \
                 *.hh \
                 *.hxx \
                 *.hpp \
                 *.h++
RECURSIVE = YES

Configuration options related to source browsing.

REFERENCED_BY_RELATION = YES
REFERENCES_RELATION    = YES
REFERENCES_LINK_SOURCE = NO
SOURCE_TOOLTIPS = NO
VERBATIM_HEADERS = NO

Configuration options related to the HTML output

HTML_COPY_CLIPBOARD = NO
HTML_PROJECT_COOKIE = NO

Configuration options related to the LaTeX output

GENERATE_LATEX = NO

Configuration options related to diagram generator tools

CLASS_GRAPH = NO
COLLABORATION_GRAPH = NO
GROUP_GRAPHS = NO
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = NO
DIRECTORY_GRAPH = NO

Step 5. Generate the documentation with the shell command

$ doxygen my-cvc5-Doxyfile

Step 6. Open my-cvc5-documentation/index.html in a browser to check that it works. Perhaps try searching for some function or class by name, and inspect its page.

Step 7. You likely do not want git to track the many HTML files you just generated, or even your Doxygen configuration file. You can add both to the project's .gitignore file.

# ... existing .gitignore entries ...
# vvv new lines vvv
my-cvc5-Doxyfile
/my-cvc5-documentation/
# ^^^ new lines ^^^
Clone this wiki locally
0