actual i'm using doxygen 1.7.6.1 and i got no problems with remapping of defines for my function switches. Now i want to use version 1.8.7, but it seems to be that there will be only 1 run to evaluate the preprocessor defines. For sure ENABLE_PREPROCESSING = YES is set in my doxyfile. This causes in a missing function documentation in the generated output
I upgraded the doxyfile of version 1.7.6.1 with doxygen -u and then i run doxygen for the following example:
foo_bar1.c:
/*** \file foo_bar1.c** \author foo_bar** \brief foo bar*** \addtogroup FOO_BAR ... BAR* \{ * \ingroup FOO**/#include"project.h"#if (1U == USE_FOO_BAR_FUNCTION1)/**************************************************************************//*** \brief foo bar ** does something special ** \param[in] foo* really special * * * \param[out] bar* more special * *******************************************************************************/voidfoo_bar_function1(intfoo,intbar){}/* foo_bar_function1 */#endif /* USE_FOO_BAR_FUNCTION1 *//** \} **//* for doxygen *//*-- EOF --*/
foo_bar1.h:
/*** \file foo_bar1.h** \author foo_bar** \brief foo bar** \addtogroup FOO_BAR special BAR* \{ * \ingroup FOO**/#include"project.h"#define USE_FOO_BAR_FUNCTION1 USE_FOO_FUNCTION1/*************************************************************************** F U N C T I O N D E C L A R A T I O N S**************************************************************************/#if (1U == USE_FOO_BAR_FUNCTION1)voidfoo_bar_function1(intfoo,intbar);#endif /* USE_FOO_BAR_FUNCTION1 *//** \} **//* for doxygen *//*-- EOF --*/
project.h:
/* FUNCTION SWITCHES */
#define USE_FOO_FUNCTION1 1U
#include foo_bar1.h
doxyfile:
INPUT = foo_bar1.h \
foo_bar1.c
INCLUDE_PATH = .
So there is in the foo_bar1.h a remapping of USE_FOO_FUNCTION1 to USE_FOO_BAR_FUNCTION1 which is not identifyed by doxygen. So there is no function documentation in my generated refman.rtf and also in the html output.
If we replace the USE_FOO_FUNCTION1 in the project.h, the function documentation is shown.
new project.h:
/* FUNCTION SWITCHES */#defineUSE_FOO_BAR_FUNCTION11U
#includefoo_bar1.h
Now is everything working like before. This leads me to the conclusion, that the preprocessor will only be evaluated one time. Don't know if thats wanted, but in version 1.7.6.1 it works correctly. But thats no solution for my project.
Is there a way to do a workaround or something else that i can use the actual version like the way it was in version 1.7.6.1?
Thanks for your help.
Greetings
Last edit: Bastian 2014-06-18
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
actual i'm using doxygen 1.7.6.1 and i got no problems with remapping of defines for my function switches. Now i want to use version 1.8.7, but it seems to be that there will be only 1 run to evaluate the preprocessor defines. For sure ENABLE_PREPROCESSING = YES is set in my doxyfile. This causes in a missing function documentation in the generated output
I upgraded the doxyfile of version 1.7.6.1 with doxygen -u and then i run doxygen for the following example:
foo_bar1.c:
foo_bar1.h:
project.h:
doxyfile:
So there is in the foo_bar1.h a remapping of USE_FOO_FUNCTION1 to USE_FOO_BAR_FUNCTION1 which is not identifyed by doxygen. So there is no function documentation in my generated refman.rtf and also in the html output.
If we replace the USE_FOO_FUNCTION1 in the project.h, the function documentation is shown.
new project.h:
Now is everything working like before. This leads me to the conclusion, that the preprocessor will only be evaluated one time. Don't know if thats wanted, but in version 1.7.6.1 it works correctly. But thats no solution for my project.
Is there a way to do a workaround or something else that i can use the actual version like the way it was in version 1.7.6.1?
Thanks for your help.
Greetings
Last edit: Bastian 2014-06-18