#-----------------------------------------------------------------------------
#
#  TSDuck - The MPEG Transport Stream Toolkit
#  Copyright (c) 2005-2023, Thierry Lelegard
#  BSD-2-Clause license, see LICENSE.txt file or https://tsduck.io/license
# 
#  Doxygen configuration file for TSDuck.
#  We document only public members, this is user documentation for libtsduck.
#
#-----------------------------------------------------------------------------

# Project description:

PROJECT_NAME   = "TSDuck"
PROJECT_NUMBER = "v$(TS_FULL_VERSION)"
PROJECT_BRIEF  = "MPEG Transport Stream Toolkit"
PROJECT_LOGO   = ../images/tsduck-48.png

# Input and output files:

INPUT            = ../src/doc ../src/libtsduck
FILE_PATTERNS    = *.h *.dox *.md *.java *.py
EXCLUDE_PATTERNS = */private/*
RECURSIVE        = YES
IMAGE_PATH       = ../images
OUTPUT_DIRECTORY = ../bin/doxy
INCLUDE_PATH     = $(DOXY_INCLUDE_PATH)

# Creating subdirs is useful to create a more balanced usage of the file system.
# The problem is that it is hard to predict stable direct links to useful pages
# such as "building TSDuck". So, this option is now disabled.

CREATE_SUBDIRS = NO

# Error reporting:

QUIET                = YES
WARN_NO_PARAMDOC     = YES
WARN_IF_UNDOCUMENTED = YES

# Source code analysis:

JAVADOC_AUTOBRIEF      = YES
EXTRACT_ALL            = NO
EXTRACT_PRIVATE        = NO
EXTRACT_STATIC         = YES
EXTRACT_LOCAL_CLASSES  = NO
EXTRACT_ANON_NSPACES   = NO
HIDE_FRIEND_COMPOUNDS  = YES
INTERNAL_DOCS          = NO
INHERIT_DOCS           = YES
INLINE_INHERITED_MEMB  = YES
MACRO_EXPANSION        = YES
PREDEFINED            += DOXYGEN

# Using style from https://github.com/jothepro/doxygen-awesome-css
# Same MIT license as TSDuck
# Additional customization in doxygen-custom.css

TREEVIEW_WIDTH         = 300 # Must match value in doxygen-custom.css
HTML_COLORSTYLE        = LIGHT # required with Doxygen >= 1.9.5 and awesome.css
HTML_EXTRA_STYLESHEET  = doxygen-awesome.css doxygen-awesome-sidebar-only.css doxygen-custom.css

# Generated documentation format:

GENERATE_LATEX         = NO
GENERATE_HTML          = YES
GENERATE_TREEVIEW      = YES
DISABLE_INDEX          = NO
FULL_SIDEBAR           = NO
VERBATIM_HEADERS       = NO
MARKDOWN_SUPPORT       = YES
TOC_INCLUDE_HEADINGS   = 3
ENUM_VALUES_PER_LINE   = 1
TYPEDEF_HIDES_STRUCT   = YES
SHOW_INCLUDE_FILES     = NO
FULL_PATH_NAMES        = NO
SORT_MEMBER_DOCS       = NO
SORT_BRIEF_DOCS        = YES
SORT_MEMBERS_CTORS_1ST = YES
CLASS_GRAPH            = YES
COLLABORATION_GRAPH    = YES
GROUP_GRAPHS           = YES
INCLUDE_GRAPH          = NO
INCLUDED_BY_GRAPH      = NO
CALL_GRAPH             = NO
CALLER_GRAPH           = NO
UML_LOOK               = NO
DOT_GRAPH_MAX_NODES    = 400
HAVE_DOT               = $(HAVE_DOT)
DOT_PATH               = $(DOT_PATH)

# Symbols which cannot easily be avoided in the code:

EXCLUDE_SYMBOLS        = TS_UNIQUE_NAME1, TS_UNIQUE_NAME2
