I am using doxygen 1.8.20
relevant config:
INPUT = @CMAKE_CURRENT_SOURCE_DIR@
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/../include\
@CMAKE_CURRENT_SOURCE_DIR@/include\
@CMAKE_CURRENT_SOURCE_DIR@/src
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = NO
Defined macros:
#define BEGIN_NS(NS) namespace NS {
#define END_NS(NS) /* NS */ }
Macro usage:
BEGIN_NS(xyz::core)
class X { ... };
END_NS(xyz::core)
- No namespaces generated in docs
- class X page shows no namespace of the class X
- many warnings like this: warning: Found ';' while parsing initializer list! (doxygen could be confused by a macro call without semicolon)
- function-macros calls are documented as function definitions instead of being expanded and documented correcly
** EDIT **
Results of doxygen -x
# Difference with default Doxyfile 1.8.20
PROJECT_NAME = "XXXX Library"
OUTPUT_DIRECTORY = project/../build/docs
TOC_INCLUDE_HEADINGS = 0
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PACKAGE = YES
EXTRACT_STATIC = YES
WARN_IF_UNDOCUMENTED = NO
INPUT = project
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.idl \
*.ddl \
*.odl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.cs \
*.d \
*.php \
*.php4 \
*.php5 \
*.phtml \
*.inc \
*.m \
*.markdown \
*.md \
*.mm \
*.dox \
*.py \
*.pyw \
*.f90 \
*.f95 \
*.f03 \
*.f08 \
*.f \
*.for \
*.tcl \
*.vhd \
*.vhdl \
*.ucf \
*.qsf
RECURSIVE = YES
VERBATIM_HEADERS = NO
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
GENERATE_LATEX = NO
LATEX_CMD_NAME = latex
GENERATE_XML = YES
MACRO_EXPANSION = YES
INCLUDE_PATH = project
SKIP_FUNCTION_MACROS = NO
HAVE_DOT = YES