Archived
This forum has been archived. Please start a new discussion on GitHub.
"Patch" for using doxygen for slicefiles
Hereby attached you can find a little "howto" how to use DoxyGen to generate documentation for your project:
This is how I got it working:
1. Install Cygwin (www.cygwin.com), check that doxygen and sed is installed.
2. Create a doxygen-script (I will assume you called it 'slice2doxy')
a] Make a small doxygen script, which only generates HTML files:
3. Create a sed-script (I assume you call it sed.script):
4. Generate the HTMLs (or whatever you had in mind)
If any questions, please fire ahead ;-)
PS: I made this little howto because I still couldn't figure out how to use docbook...
This is how I got it working:
1. Install Cygwin (www.cygwin.com), check that doxygen and sed is installed.
$ sed --version GNU sed version 4.1.5 $ doxygen --version 1.4.6
2. Create a doxygen-script (I will assume you called it 'slice2doxy')
a] Make a small doxygen script, which only generates HTML files:
EXTRACT_ALL = YES QUIET = YES FILE_PATTERNS = *.ice INPUT_FILTER = "sed -f sed.script " GENERATE_LATEX = NOb] Or get the full configuration file by running the following command:
doxygen -s -g slice2doxyAnd edit it by hand to have all the options you want (but be sure it has the above options in it!)
3. Create a sed-script (I assume you call it sed.script):
# Skip C-style commenting /\/\*/ , /\*\//b /\/\/\(.*\)/b s/module/namespace/ s/local// s/idempotent// s/dictionary/map/ s/sequence/vector/ #parse local interface /interface/ , /{/ { /interface/ { #change interface to class s/interface\(.*\)/class \1/ } #change extends s/extends/: public/ #add public before every keyword, but not { /{/!s/,\(.*\)/, public \1/g s/{/{public:/ } s/nonmutating\(.*)\)/\1 const/ /throws/,/;/ { s/throws/throw(/ s/;/);/ }
4. Generate the HTMLs (or whatever you had in mind)
$ doxygen slice2doxy
If any questions, please fire ahead ;-)
PS: I made this little howto because I still couldn't figure out how to use docbook...
0
Comments
-
Updated patch
I made a few mods to this, to enforce the script only on *.ice files.
Edit the project.doxyfile as follows:FILTER_PATTERNS = *.ice=./slice2doxy
Create a doxygen-script (call it 'slice2doxy') with the below contents. Make this script executable by the current user.#!/bin/sh sed -f sed.script
Create the sed-script below, called sed.script:# Skip C-style commenting /\/\*/ , /\*\//b /\/\/\(.*\)/b s/module/namespace/ s/local// s/idempotent// s/dictionary/map/ s/sequence/vector/ #parse local interface /interface/ , /{/ { /interface/ { #change interface to class s/interface\(.*\)/class \1/ } #change extends s/extends/: public/ #add public before every keyword, but not { /{/!s/,\(.*\)/, public \1/g s/{/{public:/ } s/nonmutating\(.*)\)/\1 const/ /throws/,/;/ { s/throws/throw(/ s/;/);/ }
Now run your generation as normal$ doxygen project.doxyfile
0 -
Hmm, this doesn't seem to work. I get errors from sed (this is on Solaris 10, Gnome desktop):
Unrecognized command: /\/\*/ , /\*\//b
Any idea what could be wrong?
Thanks,
Mark0