ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

How to use "tags" with rosdoc_lite to build documentation for entire Catkin Workspace.

asked 2014-03-17 09:10:00 -0600

John Hoare gravatar image

I am trying to get Doxygen documentation generated for our internal project. Our project is a catkin workspace, with a lot of our own packages.

Right now, I have a script which will generate the documentation for each individual package, using rosdoc_lite. I am trying to understand how to expand this to use tags, and so each package properly cross-references each other.

My current attempt to do this (which isn't working correctly) is to run rosdoc_lite with the "-g" and "-o" flags to build the tag file, and output the code. Then I run rosdoc_lite a second time, with the "-t" switch that points to a yaml file that points to the output and generated tag files. My reasoning here is that the tag files need to first be generated, and then the second time all the cross-references can be generated.

However, this approach does not seem to work, and each package ends up not having the "Classes" tab on the top, and each package has the same set of namespaces that show up, which don't actually correspond to the local package.

Here's the excerpt from my script:

# First run through to generate tags for each package
for path in $PACKAGE_DIRS
do
  PACKAGE_NAME=`basename $path`
  echo "Package Name: $PACKAGE_NAME"
  echo "Path: $path"
  rosdoc_lite -g $OUTPUT_DIR/$PACKAGE_NAME/$PACKAGE_NAME.tag -o $OUTPUT_DIR/$PACKAGE_NAME $path
  echo "- docs_url: file://$OUTPUT_DIR/$PACKAGE_NAME/html" >> $TAG_YAML_FILE
  echo "  location: file://$OUTPUT_DIR/$PACKAGE_NAME/$PACKAGE_NAME.tag" >> $TAG_YAML_FILE
done

# Second run that should have cross references
for path in $PACKAGE_DIRS
do
  PACKAGE_NAME=`basename $path`
  echo "Package Name: $PACKAGE_NAME"
  echo "Path: $path"
  rosdoc_lite -t $TAG_YAML_FILE -o $OUTPUT_DIR/$PACKAGE_NAME $path
  echo "<li>$PACKAGE_NAME: <a href=\"$PACKAGE_NAME/html/index.html\">Code API</a>&nbsp;&nbsp;&nbsp;<a href=\"$PACKAGE_NAME/html/index-msg.html\">MSG API</a></li>" >> $INDEX_FILE
done
edit retag flag offensive close merge delete

Comments

Hi, I have exactly the same problem...did you find a solution in the end?

jokla gravatar image jokla  ( 2014-03-24 00:52:45 -0600 )edit

Unfortunately, no I have not. I didn't spend much more time trying to figure out as there were more pressing issues.

John Hoare gravatar image John Hoare  ( 2014-06-23 11:25:56 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2014-06-24 09:56:16 -0600

joq gravatar image

rosdoc_lite is not a general solution for all document generation, it is mainly a tool for automatically generating API docs for the ROS wiki, supporting Doxygen, Sphinx and Epydoc, all with limited customization.

Since you need to do some special things, why not use Doxygen directly? Then, you can customize your script as much as you like.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2014-03-17 09:10:00 -0600

Seen: 699 times

Last updated: Jun 24 '14