{{{ Doxygen Integration with Breathe ================================ People say that the best way to use C++ with Sphinx is with Breathe. It seems to work, with some limitations though. Requirements ------------ 1. Sphinx: http://sphinx-doc.org. I installed with PyPI:: $ sudo pip install sphinx 2. Breathe: http://michaeljones.github.io/breathe/index.html. I installed with PyPI:: $ sudo pip install breathe 3. Doxygen. I installed from Ubuntu package. 4. Some say Pygments are needed for syntax coloring. I didn't remember installing it, maybe it was preinstalled, and I have no problem with syntax coloring (see demo below). Setup ----- The emailed a tarball containing the pjsip-book source files with Doxygen integration. HTML output has already been generated for sample. Put this in `$PJ_DIR/doc` so that it becomes `$PJDIR/doc/pjsip-book`. Then just run make:: $ make This will build HTML documentation in `_build/html` directory. T build PDF, run:: $ make latexpdf .. default-domain:: cpp How to Use Integrate Book with Doxygen -------------------------------------- Quick sample:: will be rendered like this: +++++++++++++++++++++++++++ This is how to quote a code with syntax coloring: .. code-block:: c++ pj::AudioMediaPlayer *player = new AudioMediaPlayer; player->createPlayer("announcement.wav"); There are many ways to refer a symbol: * A method: :cpp:func:`pj::AudioMediaPlayer::createPlayer()` * A method with alternate display: :cpp:func:`a method ` * A class :cpp:class:`pj::AudioMediaPlayer` * A class with alternate display: :cpp:class:`a class ` For that links to work, we need to display the link target declaration (a class or method) somewhere in the doc, like this: .. doxygenclass:: pj::AudioMediaPlayer :path: xml :members: Alternatively we can display a single method declaration like this: .. doxygenfunction:: pj::AudioMediaPlayer::createPlayer() :path: xml :no-link: We can also display class declaration with specific members. For more info see `Breathe documentation `_ will be rendered like this: +++++++++++++++++++++++++++ This is how to quote a code with syntax coloring: .. code-block:: c++ pj::AudioMediaPlayer *player = new AudioMediaPlayer; player->createPlayer("announcement.wav"); There are many ways to refer a symbol: * A method: :cpp:func:`pj::AudioMediaPlayer::createPlayer()` * A method with alternate display: :cpp:func:`a method ` * A class :cpp:class:`pj::AudioMediaPlayer` * A class with alternate display: :cpp:class:`a class ` For that links to work, we need to display the link target declaration (a class or method) somewhere in the doc, like this: .. doxygenclass:: pj::AudioMediaPlayer :path: xml :members: Alternatively we can display a single method declaration like this: .. doxygenfunction:: pj::AudioMediaPlayer::createPlayer() :path: xml :no-link: We can also display class declaration with specific members. For more info see `Breathe documentation `_ }}}