Sometimes pieces just fall into place and you know you’re on the right track. While preparing the 1.4 beta release of our Eyescale software stack (Equalizer and friends), I needed to put the API documentation of all these projects on a web server. In the past, with Equalizer as a single project, I just had doxygen dump it somewhere and then copied the stuff at release time to equalizergraphics. With five or more projects, that’s not really an option anymore.
Meet eyescale.github.com: Our new home for all doxygen-generated API documentation. For us, the process is almost fully automated:
- github provides a git repository for all the web pages, and automatically serves them at eyescale.github.com
- Buildyard has a configuration which clones this git repository before all other projects.
- A per-project CMake rule installs the project, runs doxygen on the installed headers, and copies the result to the git repository into project-version
- CMake magic in the git repository rebuilds the index page and adds all new files to the repository
- A manual git commit; git push uploads the new pages to the git repository, and github automatically updates the website.
This took about one day to setup, and now it takes almost no time to update API documentation. It has the added benefit that you can easily get all the reference documentation by simply cloning the git repository.