#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------

PROJECT_NAME           = "Software APIs"
PROJECT_LOGO           = "$(SRCTREE_TOP)/doc/opentitan-logo.png"

OUTPUT_DIRECTORY       = "$(DOXYGEN_OUT)"
ALLOW_UNICODE_NAMES    = YES

JAVADOC_AUTOBRIEF      = YES

STRIP_FROM_INC_PATH    = "$(SRCTREE_TOP)"

TAB_SIZE               = 2

OPTIMIZE_OUTPUT_FOR_C  = YES

# We use .c and .h for C
EXTENSION_MAPPING      = h=C c=C

INLINE_SIMPLE_STRUCTS  = YES

# This doesn't work for enums
TYPEDEF_HIDES_STRUCT   = NO

#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------

EXTRACT_ANON_NSPACES   = YES
HIDE_IN_BODY_DOCS      = YES
INTERNAL_DOCS          = NO
CASE_SENSE_NAMES       = NO

FORCE_LOCAL_INCLUDES   = NO
STRIP_FROM_INC_PATH    = "$(SRCTREE_TOP)" \
                         "$(SRCTREE_TOP)/sw/device/lib/base/freestanding"

GENERATE_TODOLIST      = NO
GENERATE_TESTLIST      = NO
GENERATE_BUGLIST       = NO

SHOW_USED_FILES        = NO
SHOW_NAMESPACES        = NO

FILE_VERSION_FILTER    = "git -C '$(SRCTREE_TOP)' log --format='%h' -1 --"

LAYOUT_FILE            = "$(SRCTREE_TOP)/site/docs/doxygen/layout.xml"

#---------------------------------------------------------------------------
# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------

QUIET                  = YES
WARN_LOGFILE           = "$(DOXYGEN_OUT)/doxygen_warnings.log"

#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------

# Absolute path using $(SRCTREE_TOP)
INPUT                  = "$(SRCTREE_TOP)/sw" \
                         "$(SRCTREE_TOP)/hw/top_earlgrey/sw" \
                         "$(SRCTREE_TOP)/site/docs/doxygen/main_page.md"

USE_MDFILE_AS_MAINPAGE = "$(SRCTREE_TOP)/site/docs/doxygen/main_page.md"

FILE_PATTERNS          = *.h \
                         *.c \
                         *.cc

RECURSIVE              = YES

# Absolute paths using $(SRCTREE_TOP)
EXCLUDE                = "$(SRCTREE_TOP)/sw/vendor" \
                         "$(SRCTREE_TOP)/sw/device/benchmarks" \
                         "$(SRCTREE_TOP)/sw/host/vendor"

EXCLUDE_SYMLINKS       = YES

# Absolute path using $(SRCTREE_TOP)
IMAGE_PATH             = "$(SRCTREE_TOP)/site/docs/doxygen"

#---------------------------------------------------------------------------
# Configuration options related to source browsing
#---------------------------------------------------------------------------

SOURCE_BROWSER         = YES
STRIP_CODE_COMMENTS    = NO

REFERENCES_LINK_SOURCE = NO

SOURCE_TOOLTIPS        = NO

#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------

COLS_IN_ALPHA_INDEX    = 2

#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------

GENERATE_HTML          = YES

# Relative to `OUTPUT_DIRECTORY`
HTML_OUTPUT            = "public-api/sw/apis"

# Absolute paths using $(SRCTREE_TOP)
HTML_HEADER            = "$(SRCTREE_TOP)/site/docs/doxygen/header.html"
HTML_FOOTER            = "$(SRCTREE_TOP)/site/docs/doxygen/footer.html"

HTML_COLORSTYLE_HUE    = 271

HTML_TIMESTAMP         = NO

# Disable Dynamic Functionality
HTML_DYNAMIC_SECTIONS  = NO
HTML_INDEX_NUM_ENTRIES = 0

GENERATE_DOCSET        = NO
GENERATE_HTMLHELP      = NO
GENERATE_QHP           = NO
GENERATE_ECLIPSEHELP   = NO

ENUM_VALUES_PER_LINE   = 1

SEARCHENGINE           = NO

#---------------------------------------------------------------------------
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------

GENERATE_LATEX         = NO

#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------

GENERATE_RTF           = NO

#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------

GENERATE_MAN           = NO

#---------------------------------------------------------------------------
# Configuration options related to the XML output
#---------------------------------------------------------------------------

GENERATE_XML           = YES

# Relative to `OUTPUT_DIRECTORY`
XML_OUTPUT             = "api-xml"

XML_PROGRAMLISTING     = NO

#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------

GENERATE_DOCBOOK       = NO

#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------

GENERATE_AUTOGEN_DEF   = NO

#---------------------------------------------------------------------------
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------

GENERATE_PERLMOD       = NO

#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------

INCLUDE_PATH           = "$(SRCTREE_TOP)/sw/device/lib/base/freestanding"

INCLUDE_FILE_PATTERNS  = *.h

PREDEFINED             =
EXPAND_AS_DEFINED      =

SKIP_FUNCTION_MACROS   = YES

#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------

CLASS_DIAGRAMS         = NO

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