Skip to content

Install doxygen #388

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
micolous opened this issue May 8, 2013 · 11 comments
Closed

Install doxygen #388

micolous opened this issue May 8, 2013 · 11 comments

Comments

@micolous
Copy link

micolous commented May 8, 2013

In my project, I'm presently using Doxygen in conjunction with Breathe in order to build Sphinx-compatible API documentation from C code.

I've put a hack in my code in order to call doxygen manually when running on RTD, however as doxygen isn't actually installed, this doesn't work. 😦

Either that or if there's a way to tell RTD to run doxygen first before building, this would remove the need for me to put a hack in conf.py.

Thanks!

Hack here: https://github.com/micolous/tm1640-rpi/blob/master/doc/source/conf.py#L21

Exception occurred:
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
The full traceback has been saved in /tmp/sphinx-err-inT0Od.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
Either send bugs to the mailing list at <http://groups.google.com/group/sphinx-dev/>,
or report them in the tracker at <http://bitbucket.org/birkenfeld/sphinx/issues/>. Thanks!
@wraithan
Copy link
Contributor

wraithan commented May 8, 2013

We do not support other build systems or preprocessing that can't be done with whats on the system.

I am always hesitant to add yet another dependency on our build server. I'll think about adding doxygen today and get back to you after work.

@micolous
Copy link
Author

micolous commented May 9, 2013

I had a look at this while setting up my documentation generation, and I couldn't find a nice way to be able to pull API documentation from C code in the way that Sphinx' autodoc does for Python code -- effectively meaning I would have to work around this by creating documentation specifically for Sphinx and synchronise it with the C header files. I primarily program in Python so I'm quite accustomed to such functionality.

The most I could find on the subject was this GSoC 2010 proposal by Leontius Adhika Pradhana. It appears though that this was not completed as another of Leontius' proposals was accepted first.

My other alternative at the moment is to build the Doxygen XML used by Breathe in a pre-commit hook, and check that XML into my git repository.

If you have another way I can achieve the same thing on RTD's build system short of keeping two versions of my documentation in sync I'm open to suggestions.

Thanks!

@mark-burnett
Copy link

I'm also interested in this kind of setup. Sphinx and RTD are great, and I would love to be able to use them on my current C++ project.

I appreciate your hesitation for additional build dependencies, but thanks for considering it :)

@tecywiz121
Copy link

Any movement on this? This would be a great feature for C and C++ developers.

@ericholscher
Copy link
Member

as far as I can tell the build server has doxygen on it. Please reopen this ticket if there's something more that needs to happen.

@micolous
Copy link
Author

I still have build errors, though it appears doxygen is now installed:

Could not create output directory /var/build/user_builds/tm1640-rpi/checkouts/latest/doc/source/../build/doxygen-xml

Exception occurred:
  File "/home/docs/checkouts/readthedocs.org/user_builds/tm1640-rpi/envs/latest/lib/python2.7/genericpath.py", line 54, in getmtime
    return os.stat(filename).st_mtime
OSError: [Errno 2] No such file or directory: 'build/doxygen-xml/index.xml'
The full traceback has been saved in /tmp/sphinx-err-A6u5KT.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
Either send bugs to the mailing list at <http://groups.google.com/group/sphinx-dev/>,
or report them in the tracker at <http://bitbucket.org/birkenfeld/sphinx/issues/>. Thanks!

Is there a preferred way to call doxygen?

@michaeljones
Copy link

Hi,

I'm the maintainer for a Sphinx extension project called Breathe which provides a bridge between Sphinx and doxygen. The idea is that the user generates doxygen xml files and they are read by the Breathe extension and used to generate documentation in Sphinx.

There is quite a lot of interest with the Breathe users to have it working smoothly on ReadTheDocs as noted here: breathe-doc/breathe#89

I have been trying to work through an example and get Breathe on to ReadTheDocs. Mostly I want to do it because you guys provide an excellent service, but now also to help the user base.

The issue is that generating the doxygen xml files involves running doxygen. I did some tests over the last week and it seemed to be picking up doxygen fine. For example: https://readthedocs.org/builds/breathe/1406944/

Unfortunately, I tried again today and it seems to be failing to find doxygen. I realise doxygen isn't officially supported but has something changed? The output currently looks like: https://readthedocs.org/builds/breathe/1415376/

Any help would be very welcome. If you've decided that doxygen shouldn't be available then that is understandable, but I'd hope that Breathe provides a way for you guys to support doxygen documentation without making doxygen a fully supported first class documentation format on ReadTheDocs.

Cheers,
Michael

@ericholscher
Copy link
Member

Hi,

Looks like doxygen didn't make it into the official install scripts, and we
just upgraded our build servers. I will go ahead and add them so it never
gets missed again.

Cheers,
Eric

On Thu, May 29, 2014 at 2:10 PM, Michael Jones [email protected]:

Hi,

I'm the maintainer for a Sphinx extension project called Breathe which
provides a bridge between Sphinx and doxygen. The idea is that the user
generates doxygen xml files and they are read by the Breathe extension and
used to generate documentation in Sphinx.

There is quite a lot of interest with the Breathe users to have it working
smoothly on ReadTheDocs as noted here: breathe-doc/breathe#89breathe-doc/breathe#89

I have been trying to work through an example and get Breathe on to
ReadTheDocs. Mostly I want to do it because you guys provide an excellent
service, but now also to help the user base.

The issue is that generating the doxygen xml files involves running
doxygen. I did some tests over the last week and it seemed to be picking up
doxygen fine. For example: https://readthedocs.org/builds/breathe/1406944/

Unfortunately, I tried again today and it seems to be failing to find
doxygen. I realise doxygen isn't officially supported but has something
changed? The output currently looks like:
https://readthedocs.org/builds/breathe/1415376/

Any help would be very welcome. If you've decided that doxygen shouldn't
be available then that is understandable, but I'd hope that Breathe
provides a way for you guys to support doxygen documentation without making
doxygen a fully supported first class documentation format on ReadTheDocs.

Cheers,
Michael


Reply to this email directly or view it on GitHubhttps://github.com//issues/388#issuecomment-44585567
.

Eric Holscher
Maker of the internet residing in Portland, Or
http://ericholscher.com

@ericholscher
Copy link
Member

It should be on the build server again, if you can confirm it works.

@michaeljones
Copy link

Thank you for the swift response! Fantastic stuff. Seems to be working now.

Successful build:https://readthedocs.org/builds/breathe/1415490/
Example output: http://breathe.readthedocs.org/en/latest/doxygen.html

Thank you very much!

@ericholscher
Copy link
Member

Integrating with external API/doc tools is something that I'm curious about lately. So looking at what you've done with doxygen will be a good example. Would love to have Sphinx or RTD support this kind of stuff (doxygen, javadoc, yarddoc, etc.) in a more integrated way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants