Closed dstroy0 closed 1 year ago
I often use a predefined macro to force documentation to show for non-x86[_64] platforms (like Arduino).
PREDEFINED = DOXYGEN_FORCED
then I can force things to show in the docs with
#if defined(ARDUINO) || defined(DOXYGEN_FORCED)
/** some docs */
void func_for_arduino();
#endif
Ok, it's not just PROGMEM it's any var with an attribute. That tells me something is not correct in the Doxyfile probably.
sounds like a preprocessing problem on behalf of doxygen. Doxygen has some detailed explanations in their manual: https://www.doxygen.nl/manual/preprocessing.html
It was a few things.
Yeah, grouping in Doxygen is without a doubt one of the worst implementations it has (second only to the archaic HTML output).
It looks like I only have to keep the namespace in a group so I will go through the codebase, remove all of the groups except that one, do docs build regression testing and then close this issue if it checks out.
Everything looks good, I was able to pull the namespace out and use the @namespace
Doxygen directive, and pull it out with breathe's doxygennamespace
directive.
Using the directive on valid C++11 variable declaration statements that contain the PROGMEM macro throws an invalid C++ warning because it does not find the end of the statement. Looking for a workaround, tried moving the PROGMEM macro to after var type with same results.