After having read the Doxygen documentation, I expected that setting ENABLE_PREPROCESSING = YES
and SKIP_FUNCTION_MACROS = YES
in my Doxygen configuration file made the following C MACRO to be not referenced.
/*! \file test_skip_macro_doxygen.h
*/
/*!
* \brief DOXYGENIGNORESME
*/
#define DOXYGENIGNORESME(a) (do {} while 0)
Nevertheless, Doxygen emits the documentation in the section "Macros" and produces reference to it. Doxygen version: 1.9.1.
What am I getting wrong?
According to the documentation for SKIP_FUNCTION_MACROS
(see: https://www.doxygen.nl/manual/config.html#cfg_skip_function_macros):
If the
SKIP_FUNCTION_MACROS
tag is set toYES
then Doxygen's preprocessor will remove all references to function-like macros that are alone on a line, have an all uppercase name, and do not end with a semicolon. Such function macros are typically used for boiler-plate code, and will confuse the parser if not removed.
In other words the references are removed in the code, not the macro itself.
To skip the symbol: EXCLUDE_SYMBOLS
(see: https://www.doxygen.nl/manual/config.html#cfg_exclude_symbols):
The
EXCLUDE_SYMBOLS
tag can be used to specify one or more symbol names (namespaces, classes, functions, etc.) that should be excluded from the output. The symbol name can be a fully qualified name, a word, or if the wildcard * is used, a substring. Examples:ANamespace
,AClass
,ANamespace::AClass
,ANamespace::*Test
So in this case : EXCLUDE_SYMBOLS = DOXYGENIGNORESME
Edit Independent whether or not the macro is documented.