jrl-umi3218 / jrl-cmakemodules

CMake utility toolbox
https://jrl-cmakemodules.readthedocs.io/en/master/
Other
59 stars 47 forks source link

Doxygen error with TAGFILES #470

Closed olivier-stasse closed 3 years ago

olivier-stasse commented 3 years ago

Symptoms:

In sot-core building the documentation with make doc generates the following error:

warning: Invalid value for 'TAGFILES' tag at line 25, file Doxyfile: Values in list '"/usr/local/share/doc/example-robot-data/doxygen-html/example-robot-data.doxytag"="/usr/local/share/doc/example-robot-data/doxygen-html" "/Volumes/Devel/sot_ws/install/share/doc/dynamic-graph-python/doxygen-html/dynamic-graph-python.doxytag"="/Volumes/Devel/sot_ws/install/share/doc/dynamic-graph-python/doxygen-html"' are not properly space or comma separated error: Illegal format for option TAGFILES, no name specified for item '=/usr/local/share/doc/example-robot-data/doxygen-html' error: Illegal format for option TAGFILES, no name specified for item '=/Volumes/Devel/sot_ws/install/share/doc/dynamic-graph-python/doxygen-html'

Tested with doxygen 1.9.1, MacOS Catalina 10.15.7

Diagnostic:

It is due to the Doxyfile having the following line: TAGFILES = "/usr/local/share/doc/example-robot-data/doxygen-html/example-robot-data.doxytag"="/usr/local/share/doc/example-robot-data/doxygen-html" "/Volumes/Devel/sot_ws/install/share/doc/dynamic-graph-python/doxygen-html/dynamic-graph-python.doxytag"="/Volumes/Devel/sot_ws/install/share/doc/dynamic-graph-python/doxygen-html"

Removing the quotes fixes the problem.

According to https://www.doxygen.nl/manual/external.html there is no quote in TAGFILES.

It is possible to modify the following line ? https://github.com/jrl-umi3218/jrl-cmakemodules/blob/7e797cbcae0947acce802c0bc63765a2b7c75828/doxygen.cmake#L661

jmirabel commented 3 years ago

Yes, this line can be modifies. However, dues to the fact that paths can have spaces (and assuming they won't contain the equal sign), I think it is better to go for the syntax mentioned in https://www.doxygen.nl/manual/config.html#cfg_tagfiles

 SET(DOXYGEN_TAGFILES_FROM_DEPENDENCIES "${DOXYGEN_TAGFILES_FROM_DEPENDENCIES} \"${${PREFIX}_DOXYGENDOCDIR}/${LIBRARY_NAME}.doxytag = ${DEP_DOCDIR}\"") 
olivier-stasse commented 3 years ago

Yes probably the problem may come from the quotes on each side of the = sign

olivier-stasse commented 3 years ago

I confirm that this syntax is working. I will propose a PR to fix this.