This serves as an overview of all potential parameters for doxygen, which are normally configured via the Doxygen.in-file. Every parameter is paired with an evaluation of whether it makes sense to have it be configurable by the user and why.
Notes:
- possible/default values are sometimes not given for unsupported parameters
- Boolean values in the Doxyfile.in are set with strings of "YES"/"NO", rather than True/False
- When no other explanation is given, the parameter is probably a useful feature to the user and has low/no potential for causing problems
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
DOXYFILE_ENCODING | No | No | - | UTF-8 | Encoding of Doxyfile.in (Doxygen configuration file) | User has no contact with Doxyfile.in and other encoding could cause problems with some string variables. |
PROJECT_NAME | Yes (required) | Yes (required) | str | - | Project Title used all over the generated documentation | The default value "My Project" would get confusing fast for multiple projects. Also, this is used for determining the project path when none is given. |
PROJECT_NUMBER | Yes | Yes | str | None | Project version/revision number | |
PROJECT_BRIEF | Yes | Yes | str | None | One-line/short description of the project | |
PROJECT_LOGO | Yes | Yes | Path | None | Path to project logo or icon (max 200x55px) for use within documentation | |
PROJECT_ICON | Yes | Yes | Path | None | Path to project icon for use in the tabs | |
OUTPUT_DIRECTORY | No (for simplicity) | No (for simplicity) | - | * | Path to which generated documentation is written | Freely user-configurable output paths could break the toolchain and would likely require significant "defensive measures" with the toolchain. |
CREATE_SUBDIRS | No | No | bool | NO | Distribute documentation output across multiple directories to potentially improve file system performance | Subdirectories would likely complicate post processing by later parts of the toolchain. |
CREATE_SUBDIRS_LEVEL | No | No | - | - | Number of levels of subdirectories generated | We do not support subdirectories. |
ALLOW_UNICODE_NAMES | No | No | bool | NO | Allow non-ASCII characters in file names (will be escaped otherwhise) | Reduce potential for unexpected errors caused by something this insignificant and thus improve file system support of documentation output. |
OUTPUT_LANGUAGE | Yes | Yes | str | English | Language used for all constant output within documentation. | |
BRIEF_MEMBER_DESC | Yes | No? (probably does nothing here) | bool | YES | Include brief member descriptions after the members listed in file/class documentation (similar to Javadoc) | |
REPEAT_BRIEF | Yes | No? (probably does nothing here) | bool | YES | Repeat the brief description of member/function before detailed description | |
ABBREVIATE_BRIEF | No | No (probably does nothing here) | list[str] | it's complicated | Automatically abbreviate brief descrition | Probably too complicated for what it is worth and could potentially cause unexpected problems with certain inputs. |
ALWAYS_DETAILED_SEC | Yes | No? (probably does nothing here) | bool | NO | When REPEAT_BRIEF enabled, generate detailed section even when only brief exists | |
INLINE_INHERITED_MEMB | Yes | Yes? (may not do anything) | bool | NO | Show inherited members as members of child class | |
FULL_PATH_NAMES | Yes | Yes? (may not do anything) | bool | YES | Files are referenced by their full (relative?) path instead of just the shortest possible unique path | |
STRIP_FROM_PATH | No | No | Path | None | Shorten full path by this given path / only display file paths starting from after this given path | This will be handled automatically, but user can still disable FULL_PATH_NAMES. |
STRIP_FROM_INC_PATH | No | No | Path | None | Shorten include paths in documentation by this given path | Could probably cause issues in such a generalized scenario. |
SHORT_NAMES | No | No | bool | NO | Shorten file names to support file systems with file/directory name length restrictions (DOS etc.) | People (should) have moved on from file systems, where this is necessary. (Note, that this is only about where the documentation should be stored) |
JAVADOC_AUTOBRIEF | No | No | bool | NO | Interpret first line (until first dot) of Javadoc-style comment as brief without explicitly requiring a @brief tag | This is probably better handled by the docstring converter. |
JAVADOC_BANNER | No | No | bool | NO* | Enable to interpret lines like /******... as beginning of Javadoc-style comment banner, instead of ignoring them | We may want this set to YES by default / always on. |
QT_AUTOBRIEF | No | No | bool | NO | Interpret first line (until first dot) of Qt-style comment as brief without explicitly requiring a @brief tag | This is probably better handled by the docstring converter. |
MULTILINE_CPP_IS_BRIEF | No | No | bool | No | Interpret multi-line C++ special block comments (//! or ///) as brief instead of detailed descrition | Set to NO, this likely works as we intend it to. |
PYTHON_DOCSTRING | No | No | bool | YES | Treat Python docstrings as preformatted text and ignore Doxygen special commands within them as a trade-off. | Set to YES, this likely works as we intend it to. |
INHERIT_DOCS | No | No | bool | YES | Undocumented members inherit documentation of the members they re-implement (if applicable) | Set to YES, this likely works as we intend it to. |
SEPARATE_MEMBER_PAGES | Yes? | No (probably does nothing here) | bool | NO | Split members of files/classes/namespaces into separate pages. | Not 100% sure, if this is unproblematic for later tools. Note: Members are separated by default when using exhale. |
TAB_SIZE | Yes | No? (probably does nothing here) | int | 4 | Number of spaces to replace tabs in code snippets with | |
ALIASES | No | No | list[str]? | None | Add user-defined doxygen commands | Probably too complicated for what it is worth and could potentially cause unexpected problems with certain inputs. |
OPTIMIZE_OUTPUT_FOR_C | Yes | No? (probably does nothing here) | bool | NO | Change some terminology to be more tailored to C (not C++), omit list of all members, etc. | May cause problems with Sphinx later. |
OPTIMIZE_OUTPUT_JAVA | No | No | bool | NO | Change output to be more tailored to Java (namespaces = packages etc.) | We do not plan to support Java. |
OPTIMIZE_FOR_FORTRAN | No | No | bool | NO | Change output to be more tailored to Fortran | We do not plan to support Fortran. |
OPTIMIZE_OUTPUT_VHDL | No | No | bool | NO | Change output to be more tailored to VHDL | We do not plan to support VHDL. |
OPTIMIZE_OUTPUT_SLICE | No | No | bool | NO | Change output to be more tailored to Slice | We do not plan to support Slice. |
EXTENSION_MAPPING | No | No | list[str]? | None | Change mapping of language parser used per file extension (format: "ext=language") | We may want to default to using "no_extension=md" |
MARKDOWN_SUPPORT | No | No | bool | YES | Look for markdown formatting in all comments | We want this to stay enabled, as it should not hurt and is likely beneficial (in case there is intentional or unintentional markdown in docstrings). |
TOC_INCLUDE_HEADINGS | Yes | No? (probably does nothing here) | int | 5 | If MARKDOWN_SUPPORT is enabled, all headers up to this level are included in table of contents | |
MARKDOWN_ID_STYLE | Yes | No? (probably does nothing here) | str | DOXYGEN | Specify algorithm for generating markdown heading IDs (DOXYGEN or GITHUB) | There likely is a good reason why there is a GITHUB option. |
AUTOLINK_SUPPORT | No? | No? (probably does nothing here) | bool | YES | Enable to automaticaly link potentially corresponding words to classes, namespaces, etc. (except they start with '%') | Probably overall helpful, but might occasionally cause some confusion when the links are wrong. |
BUILTIN_STL_SUPPORT | No | No | bool | NO | Enable to automatically match STL classes (std::string, std::vector.) (also benefits inheritance/collaboration diagrams) | We may want this to be True by default, because it is unlikely such a tag file exists, when there is no proper documentation in the first place. |
CPP_CLI_SUPPORT | No? | No? | bool | NO | If you use Microsoft's C++/CLI language, you should set this option to YES to enable parsing support. (a bit unclear) | Probably does nothing here. |
SIP_SUPPORT | Yes? | Yes? | bool | NO | If whole project consists of SIP (Python bindings for C generator), enable to to use public inheritance when not explicitly protected. | Requires some additional knowledge from the user, but "not enabling by accident" should not cause much harm. |
IDL_PROPERTY_SUPPORT | Yes | Yes | bool | YES | If Microsoft IDL is present, use properties for getters/setters where applicable | Judging from being enabled by default, this does not cause harm even when Microsoft IDL is not used. Option to disable given anyway. |
DISTRIBUTE_GROUP_DOC | No | No | bool | NO | If member grouping is used, use documentation of first grouß members for the other members as well | The way it is described, this could unintentionally overwrite documentation of group members that are not the first. |
GROUP_NESTED_COMPOUNDS | Yes? | Yes? | bool | NO | Enable to automatically add nested structs/classes to group when "parent" is added (otherwise \ingroup is required) | Seems really niche. |
SUBGROUPING | Yes? | Yes? | bool | YES | Enable to allow class member groups of the same type (i. e. group of public functions) (can be disabled per class by \nosubgrouping) | Seems really niche. |
INLINE_GROUPED_CLASSES | Yes? | No? (probably does nothing here) | bool | NO | Enable to show group members inside group they are included instead of on separate pages (does not work with SEPARATE_MEMBER_PAGES) | Seems really niche. |
INLINE_SIMPLE_STRUCTS | Yes? | No? (probably does nothing here) | bool | NO | Enable to inline structs/classes only containing typedefs and public data fields to page of their parent class/namespace | Seems really niche. |
TYPEDEF_HIDES_STRUCT | Yes | Yes? | bool | NO | Enable to refer to typedefed struct/uniion/enum by name of typedef instead of listing typedefs as members | |
LOOKUP_CACHE_SIZE | No | No | int | 0 | Specify size of lookup cache for types/symbols (2^(16+LOOKUP_CACHE_SIZE)) | User likely can not guess how many different types/symbols will be encountered. Default should be way higher, as memory is not that sparse these days. However, a flag for "small cache" could be added as a safety measure. |
NUM_PROC_THREADS | No | No | int | 1 | Specify number of threads doxygen is allowed to use for input processing (use DOT_NUM_THREADS for specifying threads for dot graph generation) | We want this set to 0 to automatically determine the number of threads based on processor cores |
TIMESTAMP | Yes | No? (probably does nothing here) | str | NO | Specify whether and how to add timestamp to each page (YES, NO, DATETIME or DATE) (relevant when trying to compare output of multiple runs) | Only allow [DATETIME, DATE, NO] and default to DATETIME (more traceability by default for safety reasons) |
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
EXTRACT_ALL | No | No | bool | NO | Enable to extract all entities whether documented or not (except privat/static) | We want this to be True. |
EXTRACT_PRIVATE | Yes | Yes | bool | NO | Enable to include private members in documentation | We want this to be True by default. |
EXTRACT_PRIV_VIRTUAL | Yes | Yes | bool | No | Enable to include private virtual methods in documentation | We want this to be True by default. |
EXTRACT_PACKAGE | Yes | Yes | bool | No | Enable to include members with package or internal scope in documentation | We want this to be True by default. |
EXTRACT_STATIC | Yes | Yes | bool | No | Enable to include static members of files in documentation | We want this to be True by default. |
EXTRACT_LOCAL_CLASSES | Yes | Yes | bool | No | Enable to include locally defined structs/classes in documentation (not for Java) | We want this to be True by default. |
EXTRACT_LOCAL_METHODS | No | No | bool | No | Enable to include locally defined methods in documentation (only Objective-C) | We do not support Objective-C. |
EXTRACT_ANON_NSPACES | Yes | Yes | bool | No | Enable to include members of anonymous namespaces in documentation | We want this to be True by default. |
RESOLVE_UNNAMED_PARAMS | No | No | bool | YES | Enable to derive names of unnamed parameters by corresponding definition | We want this to be True. |
HIDE_UNDOC_MEMBERS | No | No | bool | NO | Enable to hide undocumented members (not in overview, only documentaion) | Overwritten by EXTRACT_ALL = True. |
HIDE_UNDOC_CLASSES | No | No | bool | NO | Enable to hide undocumented classes (not in overview, only documentaion) | Overwritten by EXTRACT_ALL = True. |
HIDE_FRIEND_COMPOUNDS | No? | No? | bool | NO | Enable to hide friend declarations | We (probably) want this to be True. |
HIDE_IN_BODY_DOCS | No | No | bool | NO | Enable to hide documentation blocks inside function body (otherwise, they are appended) | |
INTERNAL_DOCS | No | No | bool | NO | Enable to include documentation after \internal comment | We want this to be True. |
CASE_SENSE_NAMES | No | No | str | SYSTEM | Set case sensitivity for output files | This is about the system the docs are generated on. |
HIDE_SCOPE_NAMES | Yes | Yes? | bool | NO | Enable to hide full class and namescape scopes in documentaiton | |
HIDE_COMPOUND_REFERENCE | Yes | No? | bool | NO | Enable to hide class reference etc. on documentation pages | |
SHOW_HEADERFILE | Yes | No? | bool | YES | Enable to show which header file to include to use a class | |
SHOW_INCLUDE_FILES | Yes | No? | bool | YES | Enable to show which files a file includes in its documentation | |
SHOW_GROUPED_MEMB_INC | Yes | No? | bool | NO | Enable to show which file to include to use a group member | |
FORCE_LOCAL_INCLUDES | ||||||
INLINE_INFO | ||||||
SORT_MEMBER_DOCS | ||||||
SORT_BRIEF_DOCS | ||||||
SORT_MEMBERS_CTORS_1ST | ||||||
SORT_GROUP_NAMES | ||||||
SORT_BY_SCOPE_NAME | ||||||
STRICT_PROTO_MATCHING | ||||||
GENERATE_TODOLIST | ||||||
GENERATE_TESTLIST | ||||||
GENERATE_BUGLIST | ||||||
GENERATE_DEPRECATEDLIST | ||||||
ENABLED_SECTIONS | ||||||
MAX_INITIALIZER_LINES | ||||||
SHOW_USED_FILES | ||||||
SHOW_FILES | ||||||
SHOW_NAMESPACES | ||||||
FILE_VERSION_FILTER | ||||||
LAYOUT_FILE | ||||||
CITE_BIB_FILES |
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
QUIET | No | No | bool | NO | Enable to turn off messages in console | It makes more sense to add option to disable logging for the whole toolchain. |
WARNINGS | Yes | Yes | bool | YES | Enable to generate warning messages to stderr | Should be called "disable_doxygen_warnings". |
WARN_IF_UNDOCUMENTED | No | No | bool | - | Enable to generate warnings for undocumented members | Overwritten by EXTRACT_ALL = True. |
WARN_IF_DOC_ERROR | No | No | bool | YES | Enable to generate warnings for potential documentation errors (duplicates, nonexisting, wrong markup, etc.) | We want this to be True (to simplify) and there are probably no cases where this has to be disabled. |
WARN_IF_INCOMPLETE_DOC | No | No | bool | NO | Enable to generate warnings when function parameter documentation is incomplete | We want this to be True (to simplify) and there are probably no cases where this has to be disabled. |
WARN_NO_PARAMDOC | No | No | bool | NO | Enable to generate warnings when function documentation is missing parameters or return value | Automatically disabled by EXTRACT_ALL = True. |
WARN_IF_UNDOC_ENUM_VAL | No | No | bool | NO | Enable to generate warnings when enum values are not documented | Automatically disabled by EXTRACT_ALL = True. |
WARN_AS_ERROR | No | No | bool | NO | Enable to stop doxygen execution immediately when a warning is encountered | Depending on the "safety level" it could be a requirement to reject software with undocumented components. However, enabling this would likely stop doxygen before doing much of anything, when not disabling all "ifs". |
WARN_FORMAT | No | No | str | - | Specify text format of warning messages | Default format should be sufficient for locating errors, if desired. After all, fixing the documentation is not really a use case for us. |
WARN_LINE_FORMAT | No | No | str | - | Specify custom cut/paste-string for jumping to error locations | Default format should be sufficient for locating errors, if desired. After all, fixing the documentation is not really a use case for us. |
WARN_LOGFILE | No | No | Path | None | Path to write logfile of doxygen warnings/errors | This should be handled by us rater than the user. |
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
INPUT | Yes | Yes | Path | - | Path to files/directories containing a project's documented source files | We default to a Path constructed from the project name, but also want to offer the option to overwrite it with a custom path, when provided. |
INPUT_ENCODING | Yes | Yes | str | UTF-8 | Expected chracter encoding of the source files (output will be UTF-8, see https://www.gnu.org/software/libiconv/ for possible input encodings) | There may be cases, where there is no way around the user trying out different encodings, UNLESS we want to implement some kind of auto-detection. |
INPUT_FILE_ENCODING | Yes | Yes | list[str] | None | List of patterns to specify encodings for individual (groups of) files (pattern=encoding (like *.php=ISO-8859-1)) | Potentially too complicated for the user's intentions, but may be necessary in some cases, UNLESS we want to implement some kind of file-level auto-detection. |
FILE_PATTERNS | No | No | list[str] | ... | List of patterns (like *.h, *.hpp, etc.) to classify files within INPUT as relevant | Default should already contain extensions of all supported relevant file types. We may add ".txt" to not miss documentation of some "off standard C code" etc. |
RECURSIVE | No | No | bool | NO | Enable to parse subdirectories of INPUT as well | We want this to be True. |
EXCLUDE | No | No | Path | None | Path to files/directories that should explicitely NOT be included in the documentation | Not really applicable for a user that doesn't know the project. |
EXCLUDE_SYMLINKS | Yes | Yes | bool | NO | Enable to exclude files that are symlinks from the documentation | |
EXCLUDE_PATTERNS | No | No | list[str] | None | List of wildcard patterns (e. g. /test/) to exclude files from | Not really applicable for a user that doesn't know the project. |
EXCLUDE_SYMBOLS | No | No | list[str] | None | List of symbol names to exclude from documentation | Not really applicable for a user that doesn't know the project. |
EXAMPLE_PATH | No | No | Path | None | Path to files or directories containing example code fragments | We want to operate on a "one directory per project"-basis. If the examples are within the project directory, they should already be included. |
EXAMPLE_PATTERNS | No | No | list[str] | None | List of patterns (like *.h, *.hpp, etc.) to classify files within EXAMPLE_PATH as relevant | We do not use EXAMPLE_PATH. |
EXAMPLE_RECURSIVE | No | No | bool | NO | Enable to parse subdirectories of EXAMPLE_PATH as well | We do not use EXAMPLE_PATH. |
IMAGE_PATH | ||||||
INPUT_FILTER | ||||||
FILTER_PATTERNS | ||||||
FILTER_SOURCE_FILES | ||||||
FILTER_SOURCE_PATTERNS | ||||||
USE_MDFILE_AS_MAINPAGE | No | No? (likely does nothing) | Path | None | Name of a markdown file to incorporate into the main page (index.html) | We may want the Readme file to be referenced here, but this will require a search for a top level ".md" or .txt" titled something like "Readme". |
FORTRAN_COMMENT_AFTER | No | No | int | 72 | Number of characters after which a line of Fortran is automatically considered as a comment | We do not support fortran. |
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
SOURCE_BROWSER | Yes | Yes? (might do nothing) | bool | NO | Enable to generate list of source files to cross-reference in documentation | Could be combined with VERBATIM_HEADERS for a "no source code" option. As this is tailored for use with already open-source software, we may want this True by default and necessity of this as an option is debatable. |
INLINE_SOURCES | Yes | Yes? (might do nothing) | bool | NO | Enable to inline function bodies, macros, enums or list initialized variables directly into documentation | |
STRIP_CODE_COMMENTS | Yes | Yes? (might do nothing) | bool | YES | Enable to remove "special command blocks" from source code fragments in documentation | |
REFERENCED_BY_RELATION | Yes | Yes? (might do nothing) | bool | NO | Enable to list all documented functions referencing it for each documented entity | We may want this to be true by default. |
REFERENCES_RELATION | Yes | Yes? (might do nothing) | bool | NO | Enable to list all documented entities called/used for each documented function | We may want this to be true by default. |
REFERENCES_LINK_SOURCE | bool | YES | ||||
SOURCE_TOOLTIPS | ||||||
USE_HTAGS | ||||||
VERBATIM_HEADERS | ||||||
CLANG_ASSISTED_PARSING | ||||||
CLANG_ADD_INC_PATHS | ||||||
CLANG_OPTIONS | ||||||
CLANG_DATABASE_PATH |
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
ALPHABETICAL_INDEX | No | No | bool | YES | Enable to generate alphabetical index of all compounds | We want this to be True. |
IGNORE_PREFIX | No | No | list | None | Provide certain prefixes to cause compounds to not appear in alphabetical index | Too convoluted/complicated and potentially unpredictably error-prone. |
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
GENERATE_HTML | No | No? | bool | YES | Enable HTML output | Always True for Doxygen, always False for Sphinx. No need for both. |
HTML_OUTPUT | No | No | Path | - | Path to directory to generate XML output | We want to control this. Should be "html" when using Sphinx, but could be the main directory when using only Doxygen. |
HTML_FILE_EXTENSION | No | No | str | .html | File extension for generated HTML files | As 4 characters are no problem for modern file systems, there seems to be no real reason to ever change this. |
HTML_HEADER | Yes | No? (probably does nothing) | Path | None | Path to an optional custom HTML header (use "doxygen -w html new_header.html new_footer.html new_stylesheet.css" to generate a template) | |
HTML_FOOTER | Yes | No? (probably does nothing) | Path | None | Path to an optional custom HTML footer (use "doxygen -w html new_header.html new_footer.html new_stylesheet.css" to generate a template) | |
HTML_STYLESHEET | No | No | Path | None | Path to an optional custom stylesheet (use "doxygen -w html new_header.html new_footer.html new_stylesheet.css" to generate a template) | We provide an optional additional argument to select between the default stylesheet and "doxygen awesome" (an open-source modern-looking doxygen theme) |
HTML_EXTRA_STYLESHEET | Yes | No? (probably does nothing) | Path | None | Path to an optional additional stylesheet that can override the main stylesheet | This is the preferred option to set a custom stylesheet and should make it easier for the user to generate a valid stylesheet |
HTML_EXTRA_FILES | ||||||
HTML_COLORSTYLE | ||||||
HTML_COLORSTYLE_HUE | ||||||
HTML_COLORSTYLE_SAT | ||||||
HTML_COLORSTYLE_GAMMA | ||||||
HTML_DYNAMIC_MENUS | ||||||
HTML_DYNAMIC_SECTIONS | ||||||
HTML_CODE_FOLDING | ||||||
HTML_COPY_CLIPBOARD | ||||||
HTML_PROJECT_COOKIE | ||||||
HTML_INDEX_NUM_ENTRIES | ||||||
GENERATE_DOCSET | ||||||
DOCSET_FEEDNAME | ||||||
DOCSET_FEEDURL | ||||||
DOCSET_BUNDLE_ID | ||||||
DOCSET_PUBLISHER_ID | ||||||
DOCSET_PUBLISHER_NAME | ||||||
GENERATE_HTMLHELP | ||||||
CHM_FILE | ||||||
HHC_LOCATION | ||||||
GENERATE_CHI | ||||||
CHM_INDEX_ENCODING | ||||||
BINARY_TOC | ||||||
TOC_EXPAND | ||||||
SITEMAP_URL | ||||||
GENERATE_QHP | ||||||
QCH_FILE | ||||||
QHP_NAMESPACE | ||||||
QHP_VIRTUAL_FOLDER | ||||||
QHP_CUST_FILTER_NAME | ||||||
QHP_CUST_FILTER_ATTRS | ||||||
QHP_SECT_FILTER_ATTRS | ||||||
QHG_LOCATION | ||||||
GENERATE_ECLIPSEHELP | ||||||
ECLIPSE_DOC_ID | ||||||
DISABLE_INDEX | ||||||
GENERATE_TREEVIEW | ||||||
FULL_SIDEBAR | ||||||
ENUM_VALUES_PER_LINE | ||||||
TREEVIEW_WIDTH | ||||||
EXT_LINKS_IN_WINDOW | ||||||
OBFUSCATE_EMAILS | ||||||
HTML_FORMULA_FORMAT | ||||||
FORMULA_FONTSIZE | ||||||
FORMULA_MACROFILE | ||||||
USE_MATHJAX | ||||||
MATHJAX_VERSION | ||||||
MATHJAX_FORMAT | ||||||
MATHJAX_RELPATH | ||||||
MATHJAX_EXTENSIONS | ||||||
MATHJAX_CODEFILE | ||||||
SEARCHENGINE | ||||||
SERVER_BASED_SEARCH | ||||||
EXTERNAL_SEARCH | ||||||
SEARCHENGINE_URL | ||||||
SEARCHDATA_FILE | ||||||
EXTERNAL_SEARCH_ID | ||||||
EXTRA_SEARCH_MAPPINGS |
Not supported and off by default.
Not supported and off by default.
Not supported and off by default.
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
GENERATE_XML | Yes? | No | bool | NO | Enable generating XML files capturing the projects structure and documentation | Must be True if later steps in toolchain require Doxygen's XML output as input and when using Sphinx, because Breathe/Exhale depend on it. |
XML_OUTPUT | No | No | Path | - | Path to directory to generate XML output | If necessary, controlled by us, not the user. |
XML_PROGRAMLISTING | No | No | bool | YES | Enable to include program listings (including highlighting and cross references) in XML output | We want this to be True, because the XML output is used as an intermediate to get as much data sourced by Doxygen to other tools (Sphinx etc.) |
XML_NS_MEMB_FILE_SCOPE | No | No | bool | NO | Enable to include namespace members in file scope in XML output (closer to HTML output) | We want this to be True, because the XML output is used as an intermediate to get as much data sourced by Doxygen to other tools (Sphinx etc.) |
Not supported and off by default.
Not supported and off by default. Also still labelled as experimental and incomplete.
Not supported and off by default.
Not supported and off by default.
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
ENABLE_PREPROCESSING | No | No | bool | YES | Enable to evaluate all encountered C-preprocessor directives | We want this to be True. An option to disable in case of errors is "not an option", as glossing over dysfunctional macros would not fit the safety-critical intent of this project. |
MACRO_EXPANSION | Yes | Yes | bool | NO | Enable to expand macros (otherwise only conditional compilation is performed) | We want this to be True by default to capture the most detail at first. |
EXPAND_ONLY_PREDEF | No | No | bool | NO | Enable to expand only macros listed in PREDIFINED and EXPAND_AS_DEFINED | Setting PREDIFINED and EXPAND_AS_DEFINED is rather convoluted and not really applicable to an unknown general code base. However, in terms of causing error by bad user input, this should be rather unproblematic. |
SEARCH_INCLUDES | No | No | bool | YES | Enable to also search files in the INCLUDE_PATH, when an #include is found | We do not use INCLUDE_PATH. |
INCLUDE_PATH | No | No | Path | None | Separate (non-recursive) path for include files that is not within the input files | We want to operate on a "one directory per project"-basis and the user likely has no additional headers for an arbitrary projekt that can not simply be included in the project's main directory. |
INCLUDE_FILE_PATTERNS | No | No | - | - | List of patterns (like *.h, *.hpp, etc.) to classify files within INCLUDE_PATH as relevant (uses FILE_PATTERNS if left empty) | We do not use INCLUDE_PATH. |
PREDEFINED | No | No | - | - | List of macro names with definitions to be specified before the preprocessor is started (only if EXPAND_ONLY_PREDEF enabled) | Setting PREDIFINED and EXPAND_AS_DEFINED is rather convoluted and not really applicable to an unknown general code base. However, in terms of causing error by bad user input, this should be rather unproblematic. |
EXPAND_AS_DEFINED | No | No | - | - | List of macros to be specified with the definitions found in the sources (only if EXPAND_ONLY_PREDEF enabled) | Setting PREDIFINED and EXPAND_AS_DEFINED is rather convoluted and not really applicable to an unknown general code base. However, in terms of causing error by bad user input, this should be rather unproblematic. |
SKIP_FUNCTION_MACROS | Yes | Yes? | bool | YES | Enable to remove all references to function-like macros (one-liner, all upper-case, not semicolon at end) (mostly used for boiler-plate and could confuse parser) | Option for user to disable should exist, but False should not be default with it being error-prone. |
The whole concept is not really applicable to our approach of generating documentation for any previously unknown software project.
Parameter | Doxygen? | Sphinx? | Value | Default | Description | Explanation |
---|---|---|---|---|---|---|
HIDE_UNDOC_RELATIONS | No | No | bool | NO | Enable to hide relations to undocumented members in inheritance/collaboration graphs | We want this to be False as long as generating graphs is enabled, because the graphs are especially helpful when documentation is lacking. |
HAVE_DOT | No | No | bool | NO | Enable to search for the dot tool (https://www.graphviz.org/) in the system's path | We want this to be True, as we assume it is added to the system path when installing it. |
DOT_NUM_THREADS | No | No | int | 0 | Specify number of threads doxygen/dot is allowed to use for graph generation | We want this set to 0 to automatically determine the number of threads based on processor cores. |
DOT_COMMON_ATTR | No* | No* | - | - | Define various attributes fro the generated dot graphs (see https://graphviz.org/doc/info/attrs.html) | The format is too complicated/convoluted for an unknowing user. We may want to offer an option to change the font used (i. e. corporate identity reasons) |
DOT_EDGE_ATTR | No* | No* | - | - | Define various attributes fro the generated dot graphs regarding graph edges (see https://graphviz.org/doc/info/arrows.html) | The format is too complicated/convoluted for an unknowing user. We may want to offer an option to change the font used (i. e. corporate identity reasons) |
DOT_NODE_ATTR | No* | No* | - | - | Define various attributes fro the generated dot graphs regarding graph nodes (see https://www.graphviz.org/doc/info/shapes.html) | The format is too complicated/convoluted for an unknowing user. We may want to offer an option to change the font used (i. e. corporate identity reasons) |
DOT_FONTPATH | Yes* | Yes* | Path | None | Path to a custom font to use in dot graphs (font still has to be specified in attributes) | Could be used as an "override option", but likely irrelevant until regular font option is implemented. |
CLASS_GRAPH | No* | No* | bool* | YES | Enable to generate inheritance graphs for each class from source code, utilizing the graphviz dot tool | For simplicity, we want all dot graphs enabled by default and prefer an option to disable all at once. Simplifies this toa boolean decision. |
COLLABORATION_GRAPH | No* | No* | bool | YES | Enable to generate collaboration graphs (direct and indirect implementation dependencies) for each class from source code, utilizing the graphviz dot tool | For simplicity, we want all dot graphs enabled by default and prefer an option to disable all at once. |
GROUP_GRAPHS | No* | No* | bool | YES | Enable to generate group graphs from source code, utilizing the graphviz dot tool | For simplicity, we want all dot graphs enabled by default and prefer an option to disable all at once. |
UML_LOOK | Yes | Yes | bool | NO | Enable to make inheritance/collaboration diagrams look more like UML class diagrams | We want this to be True by default. |
UML_LIMIT_NUM_FIELDS | Yes | Yes | int | 10 | When UML_LOOK is enabled, specify the max. number of field/methods (1-100, 0 for no limit) | We may want to specify a higher limit (50?). No limit seems like a bad idea. |
DOT_UML_DETAILS | Yes | Yes | str | NO | When set to "YES", types and arguments are included in UML graphs,set to "NO" they are omitted and set to "NONE", no fields with class member information are generated | No should stay the default, but we may change the options to something less "pseudo boolean". |
DOT_WRAP_THRESHOLD | No | No | int | 17 | Number of characters before automatic linebreaks in dot graphs | We may want to slightly raise this limit (20?). Could also be raised when DOT_UML_DETAILS is enabled. |
TEMPLATE_RELATIONS | Yes | Yes | bool | NO | Enable to include template/instance-relations in class/collaboration graphs | We want this to be True by default. |
INCLUDE_GRAPH | No* | No* | bool | YES | Enable to generate include graphs for each header file from source code, utilizing the graphviz dot tool | For simplicity, we want all dot graphs enabled by default and prefer an option to disable all at once. |
INCLUDED_BY_GRAPH | No* | No* | bool | YES | Enable to generate included-by graphs for each header file from source code, utilizing the graphviz dot tool | For simplicity, we want all dot graphs enabled by default and prefer an option to disable all at once. |
CALL_GRAPH | No* | No* | bool | NO | Enable to generate call graphs for each function from source code, utilizing the graphviz dot tool | For simplicity, we want all dot graphs enabled by default and prefer an option to disable all at once. |
CALLER_GRAPH | No* | No* | bool | NO | Enable to generate caller graphs for each class from source code, utilizing the graphviz dot tool | For simplicity, we want all dot graphs enabled by default and prefer an option to disable all at once. |
GRAPHICAL_HIERARCHY | No* | No* | bool | YES | Enable to generate a graphical class hierarchy from source code, utilizing the graphviz dot tool | For simplicity, we want all dot graphs enabled by default and prefer an option to disable all at once. |
DIRECTORY_GRAPH | No* | No* | bool | YES | Enable to generate a directory graph from source code, utilizing the graphviz dot tool | For simplicity, we want all dot graphs enabled by default and prefer an option to disable all at once. |
DIR_GRAPH_MAX_DEPTH | No | No | int | 1 | Set the maximum depth for the directory graph (1-25) | We want this to always be set to the maximum value of 25. This might be a ridiculous hierarchy depth, but if any project goes this far, it would be desirable to document it. |
DOT_IMAGE_FORMAT | Yes | Yes | str | png | Set the image format of all graphs generated by doxygen/dot | We want this to be svg by default. The user may want the option to generate rasterized images. |
INTERACTIVE_SVG | No | No | bool | YES | Enable graphs to be interactive (interlinked) when DOT_IMAGE_FORMAT is set to svg | No real reason to disable this, as the svg files themselves do not contain the links/interactivity. |
DOT_PATH | No | No? (may behave differently) | Path | None | Path to the graphviz dot tool executable (defaults to system path if left blank) | We want to ensure that DOT is added to the system path when installing it. Manually setting it will not be necessary. |
DOTFILE_DIRS | No | No | list[Path] | None | Path to additional dot files to be included | Not really in line with out purpose, so not necessary. |
DIA_PATH | No | No | Path | None | Path to the graphviz dia tool executable (defaults to system path if left blank) | Not as relevant as the dot tool, but should be installed and added to path along with dot when installing graphviz. |
DIAFILE_DIRS | No | No | Path | None | Path to additional dia files to be included | Not really in line with out purpose, so not necessary (and more niche than dot). |
PLANTUML_JAR_PATH | No? | No? | Path | None | Path to the plantuml JAR file (leaving blank equals not using plantuml) | plantuml seems to not allow being added to the system path. We could technically offer an option to include plantuml, but this would also require Java additionally and seems somewhat niche, as its output requires actual instructions in the documentation. Also, at least UML class diagrams are already available by using dot and enabling UML-Look. |
PLANTUML_CFG_FILE | No? | No? | Path | None | Path to the plantuml config file | |
PLANTUML_INCLUDE_PATH | No | No | Path | None | Path to additional plantuml files to be included | |
DOT_GRAPH_MAX_NODES | No | No | int | 50 | Specify maximum number of nodes in a dot graph (1-10000) | We want this to be 1000, because it seems like a fittingly large arbitrary value. :) |
MAX_DOT_GRAPH_DEPTH | No | No | int | 0 | Specify max. number of nodes on a path originating from the root not (0-1000, 0 for no limit) | DOT_GRAPH_MAX_NODES should be sufficient as a limit. |
DOT_MULTI_TARGETS | No | No | bool | NO | Enable to generate multiple dot graphs at once | We want this to be True, as we do not plan to support older graphviz versions. |
GENERATE_LEGEND | No | No | bool | YES | Enable to generate a legend page explaining the generated graphs in detail | No real reason to disable this. |
DOT_CLEANUP | Yes | Yes | bool | YES | Enable to delete temporary intermediate dot/msc files after generating graphs | Will be enabled by default, UNLESS we find a way to get further use out of the immediate files. |
MSCGEN_TOOL | No | No | str? | None | Specify external tool to use for generating message sequence charts (uses internal tool otherwise) | Doxygen-internal tool should be sufficient. |
MSCFILE_DIRS | No | No | Path | None | Path to additional msc files to be inlcuded |