Code::Blocks Forums

Developer forums (C::B DEVELOPMENT STRICTLY!) => Plugins development => Topic started by: jomeggs on April 11, 2008, 06:45:28 pm

Title: Doxygen script plugin
Post by: jomeggs on April 11, 2008, 06:45:28 pm
Hi,

recently, i thought about a doxygen plugin for automated documentation generation. After loading the CB source I saw, that you are using the gcc 4.x and that I've little knowledge about your sdk and...  :shock:

I'm a bit short of time, so I wrote a script. Maybe it's useful for someone here. It generates documentation for the currently activated project. Further details (installation, usage, output...) you'll find in the attached file.

Changelog version 04 (15.03.2009)



[attachment deleted by admin]
Title: Re: Doxygen script plugin
Post by: JGM on April 11, 2008, 07:57:03 pm
interesting!  :D
Title: Re: Doxygen script plugin
Post by: jomeggs on April 13, 2008, 12:57:52 am
interesting!  :D

Yes, and it works! At least for me... :lol:

If anyone tried it with linux, please tell me!
Title: Re: Doxygen script plugin
Post by: pasgui on April 13, 2008, 11:47:51 am
If anyone tried it with linux, please tell me!

It works for me on Ubuntu Gutsy. Just a little bit surprise by the German language, but good documentation included in the script file.

Good job.

Best regards, pasgui
Title: Re: Doxygen script plugin
Post by: jomeggs on April 13, 2008, 04:00:21 pm
Just a little bit surprise by the German language, ...

Huh? I wrote the documentation in my cripple english, what the hell is...?! :shock:
Ah, there! The generated documents were produced in german!

I changed that 8)
Title: Re: Doxygen script plugin
Post by: rhf on April 13, 2008, 06:01:54 pm
jomeggs,

Just last week I committed to using Doxygen for one of my major projects, so I was very interested to try out your script plugin.  I am pleased to say that it worked very well for me on Windows XP, and I plan to use it a great deal.

I do have one question. Can the script be modified so that Doxygen will process dependency projects for the active project in the workspace?  Note: I am not sure this is necessary or even a good idea, but I was curious if you had thought about it.

Thanks for a nice CB addition!

Bob
Title: Re: Doxygen script plugin
Post by: jomeggs on April 13, 2008, 07:01:03 pm
Hi Bob,

I had a look to the CB scripting commands wiki and found the function call "GetDependenciesForProject()". If this works as expected, it could be done. As a simple solution, I can implement a new menu entry, which generates documents for the current active project and all it's dependants. But, for each project, you will get it's own documentation.

It would be a bigger task, to write a centralized document, which includes information for all of these projects.

Title: Re: Doxygen script plugin
Post by: rhf on April 13, 2008, 07:32:07 pm
But, for each project, you will get it's own documentation.
It would be a bigger task, to write a centralized document, which includes information for all of these projects.

Hmm. I see what you mean. I am not sure that I am really using the project dependencies correctly anyway. Maybe it is just simpler to add the various files directly into each project.

Thanks.
Title: Re: Doxygen script plugin
Post by: jomeggs on April 13, 2008, 08:00:30 pm
The most common use of dependencies is, if they are libraries or dll's which your project needs.
Title: Re: Doxygen script plugin
Post by: er on April 14, 2008, 03:27:19 am
Hello,

I am a newcomer to CB.

I have a related (i think) question:

Is it possible to set up CB to automatically generate Doxygen code, at the start of each source file? Such as:

/*
 * main.c
 * Copyright (C) Author Year <email>
 *
 * main.cpp is free software.
 *
 * You may redistribute it and/or modify it under the terms of the
 * GNU General Public License, as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option)
 * any later version.
 *
 * etc...
 *
 */
Title: Re: Doxygen script plugin
Post by: Jenna on April 14, 2008, 07:20:10 am
Hello,

I am a newcomer to CB.

I have a related (i think) question:

Is it possible to set up CB to automatically generate Doxygen code, at the start of each source file? Such as:

/*
 * main.c
 * Copyright (C) Author Year <email>
 *
 * main.cpp is free software.
 *
 * You may redistribute it and/or modify it under the terms of the
 * GNU General Public License, as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option)
 * any later version.
 *
 * etc...
 *
 */


I think "Settings -> Editor... -> Default code" is what you look for.
But it seems to be only for C/C++ users.

Edit:
By the way I don't think it's related to the doxygen script plugin, even if you would use it to create "doxygen comments".

Title: Re: Doxygen script plugin
Post by: Ekinoks on June 11, 2008, 05:19:07 pm
Jomeggs, Thank you for this script ! :D

It is very easy to use and very effective ! ^^

THANKS !
Title: Re: Doxygen script plugin
Post by: jomeggs on June 11, 2008, 11:14:23 pm
Jomeggs, Thank you for this script ! :D
You're welcome!

I've another one for WINDOWS users. It opens the generated chm-file automatically after generation.
Title: Re: Doxygen script plugin
Post by: rockstar1707 on December 22, 2008, 11:33:32 am
One question. I found this script really useful, but I have problems with the non-ASCII characters. The documentation that I write contains Eastern European characters, which are not shown correctly in generated documentation.

My source files are encoded in UTF-8, and the codepage in the browser is set to UTF-8 encoding as well. Is there something that I could/should change in that script, or this is some limitation of Doxygen/Code::Blocks?
Title: Re: Doxygen script plugin
Post by: jomeggs on December 22, 2008, 02:23:33 pm
Hi rockstar1701,

maybe, it is enough to comment out the following line in the script:

Code
// sText +=  _T("INPUT_ENCODING         = ISO-8859-1\n");

If not, please take a look to the doxygen dokumentation wich tells, that at least the windows binary uses UTF8 too. You should find the related configuration options here:http://www.stack.nl/~dimitri/doxygen/config.html#cfg_dot_fontname (http://www.stack.nl/~dimitri/doxygen/config.html#cfg_dot_fontname)

Please have an eye on everything what has to do with "FONT" or "ENCODING" for the project options. As far as I know, doxygen uses libiconv.libwich supports a lot of encodings: http://www.gnu.org/software/libiconv/ (http://www.gnu.org/software/libiconv/)

Hope, this helps...
Title: Re: Doxygen script plugin
Post by: rockstar1707 on December 22, 2008, 07:58:54 pm
Hi jomeggs,

thanks for the help. Changing of input encoding to UTF-8 really fixed the problem. Though it took me some time till I figured out that you have to delete "doxygen.cfg" file and to restart Code::Blocks for the changes to take effect :)

However, things work as expected now :)

Thanks again.
Title: Re: Doxygen script plugin
Post by: vri on February 23, 2009, 02:18:27 pm
Jomeggs,

Thank you very much for this splendid plugin. I find it very useful.

Theo.
Title: Re: Doxygen script plugin
Post by: nanyu on February 24, 2009, 02:02:19 am
my suggestion:

line 100 ~ 101 , pls modify these two lines to :

    entries.Add(_("&Tools")+_T("/")+_("0:Generate documentation"), 1);
    entries.Add(_("&Tools")+_T("/")+_("1:Generate documentation with dependants"), 2);

then , it can work well with c::b which a Chinese local language.


Title: Re: Doxygen script plugin
Post by: jomeggs on March 15, 2009, 03:06:10 pm
@vri  :)

@nanyu
I followed your suggestion and furthermore removed the second (yet not working) menue entry. The download is to be found
on page one, first post.

However, I don't really understand the difference between my code and your version. Apart from the additional ampersand, what is the sense behind the now splitted string? In my eyes _() and _T() should do the same, am I wrong at this point?
Title: Re: Doxygen script plugin
Post by: Jenna on March 15, 2009, 03:14:57 pm
In my eyes _() and _T() should do the same, am I wrong at this point?

Yes, see quotes from wxWidgets docu:

Quote
_

const wxChar * _(const char *s)

This macro expands into a call to wxGetTranslation function, so it marks the message for the extraction by xgettext just as wxTRANSLATE does, but also returns the translation of the string for the current locale during execution.

Don't confuse this macro with _T()!
Quote
_T

wxChar _T(char ch)

const wxChar * _T(const wxChar ch)

This macro is exactly the same as wxT and is defined in wxWidgets simply because it may be more intuitive for Windows programmers as the standard Win32 headers also define it (as well as yet another name for the same macro which is _TEXT()).

Don't confuse this macro with _()!
Title: Re: Doxygen script plugin
Post by: jomeggs on March 15, 2009, 03:19:24 pm
@jens
That clarifies the problem with Chinese characters, thank you!
Title: Re: Doxygen script plugin
Post by: elfunesto on July 03, 2009, 02:30:38 pm
Sorry,
Were can I download the plugin: it seems that it has been deleted.
Thanks by advance. Cheers,
Hilaire
Title: Doxygen script plugin deleted by admin
Post by: jomeggs on July 05, 2009, 01:09:03 pm

Changelog version 04 (15.03.2009)
  • menue entries changed for Cinese users (nanyu and friends...)
  • CHM file is executed after generation for windows systems only
  • removed menue entry "Generate documentation with dependants", it's not working currently
  • proper error message when no active project has been opened as yet

[attachment deleted by admin]

my doxygen script has been deleted by somebody :(, was there a reason for?


Title: Re: Doxygen script plugin
Post by: elfunesto on July 05, 2009, 01:32:21 pm
Hi jomeggs, I would really appreciate if you can send me a version of your script. I was used to use it on a previous computer and I found it very very useful!
Thanks by advance.
Hilaire
Title: Re: Doxygen script plugin deleted by admin
Post by: MortenMacFly on July 06, 2009, 07:37:30 am
my doxygen script has been deleted by somebody :(, was there a reason for?
Not really. We have limited forums space which we need to clean from time to time. But we cannot select the content by erm... content. So we delete yb time. If you want to persist nice gotchas, please use the patch tracker. Forum attachments are not persistent!
Title: Re: Doxygen script plugin deleted by admin
Post by: kfmfe04 on July 06, 2009, 04:30:49 pm
my doxygen script has been deleted by somebody :(, was there a reason for?
Not really. We have limited forums space which we need to clean from time to time. But we cannot select the content by erm... content. So we delete yb time. If you want to persist nice gotchas, please use the patch tracker. Forum attachments are not persistent!

 :(  I'm too late!!!  Where can I get a copy of this plugin/script?
I would very much like to try Doxygen in C::B...


Title: Re: Doxygen script plugin deleted by admin
Post by: jomeggs on July 07, 2009, 01:03:24 am
:(  I'm too late!!!  Where can I get a copy of this plugin/script?

Don't worry, its back! :lol: It took a time to find it, but finally: Have a look at my first post

@MortonMacFly:
I'll follow your advice, but currently I'm a bit short of time...
Title: Re: Doxygen script plugin deleted by admin
Post by: kfmfe04 on July 07, 2009, 10:30:28 am
:(  I'm too late!!!  Where can I get a copy of this plugin/script?

Don't worry, its back! :lol: It took a time to find it, but finally: Have a look at my first post

Wow!  This is >FANTASTIC<!  

The call graphs are especially useful for detecting loops and avoiding "calling upwards" - excellent!

Thank you so much!!!

- Ken
Title: Re: Doxygen script plugin
Post by: elfunesto on July 07, 2009, 10:31:22 am
Thank you very much jomeggs!
Title: Re: Doxygen script plugin
Post by: kfmfe04 on July 07, 2009, 12:12:13 pm
I am new to Doxygen so I copied and pasted into MyClass.hpp (the first lines):

/*! \brief Brief description.
 *         Brief description continued.
 *
 *  Detailed description starts here.
 */

into a header file and reran the Doxygen plug-in.  I can't seem to find these comments anywhere in the html documentation for MyClass Class Reference.

- Ken

Update:  I tried the class Test example in Qt style 1/3 the way down:

http://www.stack.nl/~dimitri/doxygen/docblocks.html

Everything inside the class seems to work, but the Detailed Description normally under the Public Attributes appear to be missing.  Any idea what might cause this?

Title: Re: Doxygen script plugin
Post by: jomeggs on July 07, 2009, 07:48:24 pm
I am new to Doxygen so I copied and pasted into MyClass.hpp (the first lines):
...
Any idea what might cause this?

No, unfortunately not. But if you are going further with questions about doxygen you risk this thread to be locked by admin. That would be sad :shock:

I've send a private message, hope it was helpful for you.
Title: Re: Doxygen script plugin
Post by: gd_on on July 08, 2009, 04:24:05 pm
Hi,
I'm new to doxygen and find it's really nice.
I have installed the plugin, doxygen, graphviz 2.4 and html help workshop (for this last, i had to add manually the path to the binaries in my path system variable).
I have three problems with the plugin :
1) If there is a blank character somewhere in the path or in the .cbp file name, the plugin does not work properly. It says doxygen is not in my path, though it is correctly set. The same for dot.exe. The workaround is to use all names without anay blank characters, but it's not always obvious for big projects. Have you a better solution ?
2) for dot.exe, when my path has no blanks, it does not still work, telling me that dot.exe cannot be initialized, and after, I obtain many errors dialogs, one each time the plugin tries to use it. Finally in my case, the best solution is to avoid usage of dot.exe. But, have you an idea why it does not work ? Something missing on my PC ? Dot.exe itself, in it's own folder does not works, just telling me cannot be initialized. Installation of graphviz had no problems...
3) It looks on my PC that the plugin works only on accounts with administrative rights. Is that true ?

And finally a suggestion.
Could you replace some calls to _T macro by simply _ , especially for strings that may be translated, in dialog boxes for examples or displayed messages (a generalization of a previous Nanyu suggestion).

gd_on
Title: Re: Doxygen script plugin
Post by: jomeggs on July 08, 2009, 09:01:47 pm
I'm new to doxygen and find it's really nice. I have installed the plugin, doxygen, graphviz 2.4 and html help workshop (for this last, i had to add manually the path to the binaries in my path system variable). I have three problems with the plugin...

Hi gd_on,

I've checked the doxygen-plugin regarding spaces in path. Neither blanks in application path to doxygen or graphviz/dot nor blanks in CB project path caused any problems.

As you wrote, you're new to doxygen and graphviz. So please ensure this tools are working before throwing a stone on my holy plugin :lol:. I suggest you to open a dos command window, check your path and try to execute doxygen.exe and/or dot.exe. Is that not working, no chance to get it running with my plugin.

Further on I don't believe, that administrative rights are needed for the plugin. Could you please explain what caused this idea? But first, check your installation... If you want me to replace _T against _, please tell me which should be replaced and... No, please change them in your script and send a copy, I'll do the test.
Title: Re: Doxygen script plugin
Post by: gd_on on July 09, 2009, 12:55:00 pm
Hi jomeggs,
let me try to explain the problems.

First, I'm on Windows XP and my C::B build is 5686 (the last one in SVN)

Secondly : the problem I met with an account with privileged right was due to the fact that I first ran the plugin under such an account, and when I tried again the plugin on the same project but on an other account (not admin) files normally created by doxygen were already there, but not accessible for writing. Solution : come back to the administrator account, delete all the files created by doxygen, swicth to the normal account and now it works !

Third : there is really a problem with blank characters, but only in the name of the project. When the command to activate doxygen is launched at line 347 in your plugin, the name of the project must be quoted to avoid problems with those blank characters.
Your line is :
local result = IO.Execute(_T("doxygen ") + sCfgBaseFile);
My modified line is :
local result = IO.Execute(_T("doxygen ") + _T("\"") + sCfgBaseFile + _T("\""));
Like that, no problems here with blank characters.

Four :
Nevertheless, there is still an other problem more subtle when you want to launch automatically the .chm file created.
In my case, I have a project whose name is :
Application 1 - V3.cbp
with 3 blank characters inside.
In the cfg file, I find that line :
OUTPUT_DIRECTORY       = doc-Application 1 - V3
quite normal ...
but doxygen creates in fact a folder doc-Application1-V3
It eliminates apparently the blank characters. So, when you build the command line to launch the .chm file, you have two problems.
The first on is that you use the normal name, with blanks, so in my case the command line built is :
cmd /c "rundll32 shell32.dll,ShellExec_RunDLL doc-Application 1 - V3/Application 1 - V3.chm"
This does not work, even when you launch this in a dos window for two reasons :
1)as there are blanks in names I think it should be normally quoted like that:
cmd /c "rundll32 shell32.dll,ShellExec_RunDLL "doc-Application 1 - V3/Application 1 - V3.chm""
2) but as doxygen as eliminated blank character in the folder name it is in fact :
cmd /c "rundll32 shell32.dll,ShellExec_RunDLL "doc-Application1-V3/Application 1 - V3.chm""

This last command works in a dos window, but it not the one built automatically by the plugin. Is it a problem in doxygen, in the plugin ? I don't know...

Five :
Concerning problems with dot.exe, I have until now no solutions. I don't understand why it does not work, even in a dos window. Not a real problem because dot is optional, but ...

Six:
Finally, I have made some modifications in your plugin to make it translatable (I have tested with my french translation of C::B and it works!). Here is the result as a diff output (the modification at line 347 is included):

Code
123c123
<    Log(_T("\nRunning doxygen_docs.script..."));
---
>    Log(_("\nRunning doxygen_docs.script..."));
127c127
<        local sMsg = _T("Cant' find an active project!");
---
>        local sMsg = _("Cant' find an active project!");
132c132
<    Log(_T("\n--Running doxygen_docs.script..."));
---
>    Log(_("\n--Running doxygen_docs.script..."));
139c139
<    Log(_T("Done"));
---
>    Log(_("Done"));
153c153
<            ShowWarning(_T("Make sure the dot program is installed and somewhere in the path..."));
---
>            ShowWarning(_("Make sure the dot program is installed and somewhere in the path..."));
157c157
<            ShowWarning(_T("Failed. Make sure the doxygen program is installed and somewhere in the path..."));
---
>            ShowWarning(_("Failed. Make sure the doxygen program is installed and somewhere in the path..."));
165,166c165,166
<         sText +=  _T("# Base configuration for doxygen, generated by doxygen_doc.script\n");
<         sText +=  _T("# You may change these defaults for your purposes\n");
---
>         sText +=  _("# Base configuration for doxygen, generated by doxygen_doc.script\n");
>         sText +=  _("# You may change these defaults for your purposes\n");
169c169
<         sText +=  _T("\n########### Configuration options related to the project ##########\n");
---
>         sText +=  _("\n########### Configuration options related to the project ##########\n");
178c178
<         sText +=  _T("\n########### Configuration options HTML ##########\n");
---
>         sText +=  _("\n########### Configuration options HTML ##########\n");
186c186
<         sText +=  _T("\n########### Configuration options CHM ##########\n");
---
>         sText +=  _("\n########### Configuration options CHM ##########\n");
191c191
<         sText +=  _T("\n########### Configuration options MAN ##########\n");
---
>         sText +=  _("\n########### Configuration options MAN ##########\n");
196c196
<         sText +=  _T("\n########### Configuration options LATEX ##########\n");
---
>         sText +=  _("\n########### Configuration options LATEX ##########\n");
200c200
<         sText +=  _T("\n########## Configuration options related to the dot tool ##########\n");
---
>         sText +=  _("\n########## Configuration options related to the dot tool ##########\n");
219c219
<         sText +=  _T("\n########## Configuration options related to the extracted output ##########\n");
---
>         sText +=  _("\n########## Configuration options related to the extracted output ##########\n");
248c248
<         sText +=  _T("\n########## Configuration options related to warnings ##########\n");
---
>         sText +=  _("\n########## Configuration options related to warnings ##########\n");
256c256
<         sText +=  _T("\n########## dont't forget the source files... ##########\n");
---
>         sText +=  _("\n########## dont't forget the source files... ##########\n");
283,284c283,284
<      sInputList +=  _T("# !!! PLEASE DO _NOT_ EDIT THIS FILE !!!\n");
<      sInputList +=  _T("# It will be overidden next time you start doxygen_docs.script!\n");
---
>      sInputList +=  _("# !!! PLEASE DO _NOT_ EDIT THIS FILE !!!\n");
>      sInputList +=  _("# It will be overidden next time you start doxygen_docs.script!\n");
339c339
<         local sMsg = _T("Failed. ") + sCfgBaseFile + _T(" has not been created...");
---
>         local sMsg = _("Failed. ") + sCfgBaseFile + _(" has not been created...");
346,347c346,347
<      Log(_T("doxygen is working, please be patient..."));
<      local result = IO.Execute(_T("doxygen ") + sCfgBaseFile);
---
>      Log(_("doxygen is working, please be patient..."));
>      local result = IO.Execute(_T("doxygen ") + _T("\"") + sCfgBaseFile + _T("\""));
358c358
<               Log(_T(" Contents of  doxygen logfile:"));
---
>               Log(_(" Contents of  doxygen logfile:"));
368c368
<         sMsg = _T("Success. You'll find your documents in folder:");
---
>         sMsg = _("Success. You'll find your documents in folder:");
379c379
<         sMsg = _T("Failed. Make sure the doxygen program is installed and somewhere in the path...");
---
>         sMsg = _("Failed. Make sure the doxygen program is installed and somewhere in the path...");
407c407
<         ShowMessage(_T("won't work due to GetDependenciesForProject(oPrj)..."));
---
>         ShowMessage(_("won't work due to GetDependenciesForProject(oPrj)..."));


I hope this will help.

Gd_on
Title: Re: Doxygen script plugin
Post by: jomeggs on July 10, 2009, 10:57:35 pm
Hi gd_on,

thank's for your yet detailed description, this is quite helpful. I'll try to solve the outstanding problems next week and I'll apply your patch. As I see, the rights proplem is already solved, so you tried to override admins files, bad guy :lol:.

Regarding your dot.exe problem I could deliver a zipped copy of my dot/doxygen installation if you like. But, it's a 17 MB file, tell me where to send it if you whish.
Title: Re: Doxygen script plugin
Post by: gd_on on July 11, 2009, 04:24:57 pm
Hi jommegs,
thanks for your proposition  :). But, I think it's not useful because I have found on www.graphviz.org, in their bug list, that the dot.exe has problems in the last release (2.24 and also in the beta 2.25). So I downloaded a previous version directly from their whole list in http://www.graphviz.org/pub/graphviz/stable/windows/ and I chose version 2.22.2. Here dot.exe seems to works  :) but there are problems after for one of my projets  :( because some files seem to be not generated (some .map files), but may be it's a doxygen work, I don't know. On other projects, map file are created and I obtain nice dependency graphs inside the result chm or html files.
I have also downloaded the last doxygen version so 1.59. Which are your versions numbers ? because I suppose they work well for you.
Concerning your script, I suggest you change the messages at line 379, because you have already tested if doxygen was installed at line 157, so if it does not work here, it's not because doxygen is not installed, but something got wrong in it's execution. May be something like : doxygen has met a problem in it's execution. Output files are not properly created...

Finally, of course a simple work around to the blank character problem is : don't use blank characters in the name of your cbp project. But,.... those blanks have been introduced in file names with windows 95, so at least 15 years ago, and some softwares have still problems with that  :x. (or if you prefer .... :lol:)

Have a nice week ...

gd_on
Title: Re: Doxygen script plugin deleted by admin
Post by: ndelectro on July 15, 2009, 08:56:24 am
:(  I'm too late!!!  Where can I get a copy of this plugin/script?

Don't worry, its back! :lol: It took a time to find it, but finally: Have a look at my first post

@MortonMacFly:
I'll follow your advice, but currently I'm a bit short of time...

Hello jomeggs,

unfortunately I don't find the attached file in in you first post. Is is possible that the file is deleted again?

Where can I get the plugin. I am very interested to use it.
Title: Re: Doxygen script plugin deleted by admin
Post by: ollydbg on July 15, 2009, 09:05:03 am
:(  I'm too late!!!  Where can I get a copy of this plugin/script?

Don't worry, its back! :lol: It took a time to find it, but finally: Have a look at my first post

@MortonMacFly:
I'll follow your advice, but currently I'm a bit short of time...

Hello jomeggs,

unfortunately I don't find the attached file in in you first post. Is is possible that the file is deleted again?

Where can I get the plugin. I am very interested to use it.

But it's there in the first post of this thread.

the attachment address is:

http://forums.codeblocks.org/index.php?action=dlattach;topic=8213.0;attach=3481
Title: Re: Doxygen script plugin
Post by: ndelectro on July 15, 2009, 09:38:05 am
thank you, ollydbg

now I see it to.
I tested it under Ubuntu 8.04 and it works great!!!


Title: Re: Doxygen script plugin deleted by admin
Post by: jomeggs on July 15, 2009, 09:14:54 pm
But it's there in the first post of this thread....

Thanks for your help! :lol: :lol: :lol:

I'm thinking about to create a real doxygen-plugin with config options and so on.But before I heave my backside off my beloved sofa, I need to know if that is worth the pain... What are you guys thinking about?
Title: Re: Doxygen script plugin deleted by admin
Post by: ollydbg on July 18, 2009, 02:01:38 pm
But it's there in the first post of this thread....

Thanks for your help! :lol: :lol: :lol:

I'm thinking about to create a real doxygen-plugin with config options and so on.But before I heave my backside off my beloved sofa, I need to know if that is worth the pain... What are you guys thinking about?
Hi, nice idea!
I personally prefer a config option dialog than manually entering script. :D
Title: Re: Doxygen script plugin
Post by: swarmanizer on September 02, 2009, 01:32:26 pm
works fine in ubuntu 9.04 and C::B 8.02
thankx for sharing!
Title: Re: Doxygen script plugin deleted by admin
Post by: swarmanizer on September 02, 2009, 01:34:23 pm
:(  I'm too late!!!  Where can I get a copy of this plugin/script?

Don't worry, its back! :lol: It took a time to find it, but finally: Have a look at my first post

@MortonMacFly:
I'll follow your advice, but currently I'm a bit short of time...

Hello jomeggs,

unfortunately I don't find the attached file in in you first post. Is is possible that the file is deleted again?

Where can I get the plugin. I am very interested to use it.

But it's there in the first post of this thread.

the attachment address is:

http://forums.codeblocks.org/index.php?action=dlattach;topic=8213.0;attach=3481

You must be registered to see the file... just went to the same thing...
Title: Re: Doxygen script plugin
Post by: ajaywazir on September 03, 2009, 07:14:55 am
Is there a user manual somewhere?
We want to customise output of Doxygen, either by provided the .doxyfile or generating is withinC::B

Ajay
Title: Re: Doxygen script plugin
Post by: jomeggs on September 03, 2009, 11:46:52 am
Is there a user manual somewhere?

Please have a look into the scriptfile header. Further information about doxygen you'll find at http://www.doxygen.org
Title: Re: Doxygen script plugin
Post by: ajaywazir on September 04, 2009, 04:00:34 pm
thanks!
Got it.
Are you planning any upgrades?
e.g to add a DOXY commend based on function prototype
for automatic adding @params (in/out)  etc....rather than typing.

Ajay
Title: Re: Doxygen script plugin
Post by: jomeggs on September 05, 2009, 03:50:32 am
Hi Ajay,

my next goal ist to develop a real CB plugin which should be more customizable regarding all the possible doxygen control parameters. The idea to create automated comments would mean to change the underlying source files, a thing I would never do so far. By the way, in my eyes such comments are rather useless. Better write it by hand so you have the full control to decide, which functions are worth to be commented. I wont be rude, but these automated source documentations uses to be a pest sometimes, a lot of paper or html pages without any information at all.

My (undemanded 8)) advise is, write your comments while your're writing the function itself. This is the moment when all the needed information is still in your head. If you're doing your coments later, you could have forgotten the most interesting parts...

Nevertheless, if you still want to have an autodocumentation (nearly not possible after my claptrap above  :D), have a look t0 the EXTRACT_ALL doxygen option.

Title: Re: Doxygen script plugin
Post by: ajaywazir on September 05, 2009, 06:17:35 am
Hi Jomeggs,
Thanks.
I am with you. My idea was to automate the mundane task of writing function header comments.
The script could possible get @param information from selected test and past it above selection
There are a few eclipse/VS addons like you are planning, which may of help to you.
1. Eclox Doxygen plug in  (Java)
2. Eclipse CDT has builit in support for DOXY comments (Java)
3. DOXYBAR for VS as VS addin. (in CPP)
These can provide you some base line code.
Ajay
Title: Re: Doxygen script plugin
Post by: jomeggs on September 06, 2009, 11:09:11 am
Thanks for your hints. I'll take a deeper look for them before starting my own plugin.
Title: Re: Doxygen script plugin deleted by admin
Post by: killerbot on September 06, 2009, 01:36:39 pm
But it's there in the first post of this thread....

Thanks for your help! :lol: :lol: :lol:

I'm thinking about to create a real doxygen-plugin with config options and so on.But before I heave my backside off my beloved sofa, I need to know if that is worth the pain... What are you guys thinking about?

Damn right :-)
One of the first plug-in things i started and off course never finished was a Doxygen plug-in.  :?

So you have my support, and maybe it might be nice to have a little roadmap of futures you have in mind.
If we would be able to add them in a safe and stable way we might turn this into a contrib plug-in ...

Cheers.
Title: Re: Doxygen script plugin
Post by: jomeggs on September 06, 2009, 10:01:59 pm
...So you have my support, and maybe it might be nice to have a little roadmap of futures you have in mind....

Your support would be VERY welcome, especially regarding the development environment. The last time I compiled codeblocks on my own is nearly two years ago. So I need to know which compiler version is in use by the core developers, the same is for the wxwidgets version and so on. Yeeees, I could search the forum, but at this point I would like to have a fresh first hand information.

My idea is to create a simple replacement for the script-plugin as a first step. I would like to have a suitable doxygen configuration dialog too. That means a global doxygen configuration dialog and maybe an additional project dependent one as well. As you know, doxygen has an awful lot of lot of possibilities, so it would be nice to have something like a configuration template which is changeable for the users purposes. Further on some help for the doxygen installation itself is needed. That could be something like your compiler detection with an addition check for the needed files.

That's me, but I'm pretty sure that you all have your own ideas. So please don't hesitate to write your whishes down here.

Title: Re: Doxygen script plugin
Post by: killerbot on September 06, 2009, 10:12:28 pm
ok, question number one :

what is your oprating system for your development environment ?
Windows or linux ?
Title: Re: Doxygen script plugin
Post by: jomeggs on September 06, 2009, 10:18:55 pm
Mainly I'm working with windows (W2K, XP and VISTA - unfortunately sometimes even NT4.0...) but also with linux here and there. For this purposes I've a colinux running under windows and some standalone machines. As main-development environment I would prefer windows currently but also linux for testing the plugin there.

Short form: I need information for windows AND linux... :D
Title: Re: Doxygen script plugin
Post by: killerbot on September 06, 2009, 10:52:11 pm
Let's start with windows, follow the direction in the nightly cookbook.he

http://wiki.codeblocks.org/index.php?title=Nightly_Cookbook

But as for the GCC/GDB stuff, just use the MingW build from TDM.
http://www.tdragon.net/recentgcc/

But you should use the 4.4.0 version. But it seems you will have to assemble it yourself again, since the big installer will bring the buggy 4.4.1.

Worst case, I could put download from back in the day on my webspace.

Another solution is you use the 4.3.3 version.

Then during your development I would suggest to put your plugin as a subdir of the contrib plugins directory of the CB sources tree, since that's the place in will end up in the future.

You could use the MouseSap (latest contrib plugin that got added), as your template for makefiles and the cbp files, just manually edit them.

And then change you script code to real C++ ;-)
Title: Doxygen script plugin
Post by: jomeggs on September 07, 2009, 02:39:29 pm
I managed to get TDM gcc 4.4.0, there are old installer files on sourceforge fortuntately. The Nightly_Cookbook refers to wxwidgets 2.8.7 but I found that you're using 2.8.10, right? So I downloaded that one. I can't get svn access from my office therefore I'll checkout CB in the evening at home. Many thanks in the meantime.

@killerbot
I followed your Cookbook, compiled wxWidgets, and tried to compile codeblocks. It went fine for a while, then I've got a linker error cause wxflatnotebook has not been found (the same problem with wxWidgets 2.8.8 and 2.8.10). I noticed that this isn't part of wxWidgets, so I've to download and install it on my own, right? Which wxFlatNotebook is to be used please?
Title: Re: Doxygen script plugin
Post by: killerbot on September 07, 2009, 04:50:15 pm
CB brings wxFlatNotebook.

It has to do with the sequence order of the contrib plug-ins during the build. WxFlatNotebook is now build by a new target/project of wxSmith.

I will update the wiki this evening.

I will also update in the meantime the wx287 to wx2810. Thanks for pointing that out.
Title: Re: Doxygen script plugin
Post by: jomeggs on September 07, 2009, 05:10:21 pm
CB brings wxFlatNotebook.

Ok, found it. After compiling "wxSmith - Contrib Items" the rest went well.

There is a global variable
Code
- Code::Blocks (cb) : <cbDir>\src
mentioned. It seems to me that this one is not in use any longer, isn't it? At least, I've got no question dialog regarding this variable so far.

Title: Re: Doxygen script plugin
Post by: Jenna on September 07, 2009, 06:16:26 pm
There is a global variable
Code
- Code::Blocks (cb) : <cbDir>\src
mentioned. It seems to me that this one is not in use any longer, isn't it? At least, I've got no question dialog regarding this variable so far.

That's right. The global variable cb is no longer needed for C::B's svn-sources, because it makes it impossible to have several copies (with different patches)  of C::B sources on the same system.

But if you develop a plugin from outside the svn-sources it still makes sense.
Title: Re: Doxygen script plugin
Post by: jomeggs on September 07, 2009, 10:36:33 pm
Finally I've got my own CB compiled, thanks for your help. There is one question left:

The current nightly is running with a DLL named wxmsw28u_gcc_cb.dll. My self compiled CB made a loud cry for a dll named wxmsw28u_gcc_custom.dll which I found in my wxWidgets directory. Why is that? What has to be done to use the same DLL name or has the name been changed for the next nightly too? :o
Title: Re: Doxygen script plugin
Post by: killerbot on September 07, 2009, 11:23:58 pm
if you want the same name, you will have to add the following to all the options on the command line to build wx (the invocation of make) : VENDOR=cb .
Title: Re: Doxygen script plugin
Post by: jomeggs on September 08, 2009, 10:26:48 am
Thanks, but my only intention was to understand the item...
Title: Re: Doxygen script plugin
Post by: jomeggs on September 08, 2009, 11:47:04 pm
@killerbot

You've told that you've started with a doxgen plugin in the past. Maybe I can adopt some of your ideas for my new plugin. Better to do it in this phase than later when I've got everything ready 8)... So don't hesitate to send some short hints to me if you like.
Title: Re: Doxygen script plugin
Post by: codeur on February 16, 2010, 10:46:22 pm
This Doxygen script plugin is very useful!
Is it possible to write a modified portable version? I explain:

I am working with a portable Code::Blocks installation. The plugin of course works only on computers where Doxygen (and optionally dot.exe, hhc...) is on the path.

Portable CB would carry the doxygen.exe and dot.exe, etc... executables in a "tool" sub directory of the portable Code::Blocks installation, so the executables would be available wherever portable CB is used.

In order for this to work the script would need to be passed a parameter with the CB installation path (the value of inbuilt variable $(CODEBLOCKS)) so the calls to IO.Execute() in the script could be passed the full path to each executable.

Query:
I absolutely ignorant of CB scripting, but rather resourceful in programming. I feel I could write the modification to build the portable version if someone could explain to me how one can (if one can) pass such parameters to a script.
I searched the wiki, but did not find anything related to this.
Can someone explain how this is done, or point me to the relevant piece of documentation?
Title: Re: Doxygen script plugin
Post by: jomeggs on February 16, 2010, 11:11:21 pm
Hi codeur,

actually I'm coding a real doxygen plugin in c++, but this task will take a while, not much spare time on my side. CB scripting is a pain in the arse (sorry CB-developers, it's not your fault  :D ) cause you don't have access to everything you need. Or one won't find it in documentation anyway... Beside that, perhaps there is no need to pass parameters to the script. It should be much simpler to use some environment vars which are accessible from scripts as far as I believe.

In CompilerOptionsBase you will find the function GetVar(), that should do the job. Or be patient an wait for the real plugin. I will think about the portable version cause I'm a fan of portable apps too.

Cheers!
Title: Doxygen plug-in
Post by: Cryogen on February 19, 2010, 05:34:40 am

 Hi Guys,

Inspired by jomeggs' script I have written a doxygen integration plug-in for Code::Blocks.

Please see http://forums.codeblocks.org/index.php/topic,12052 (http://forums.codeblocks.org/index.php/topic,12052) for details.

Thanks for the script and the inspiration.

 Gary.
Title: Re: Doxygen script plugin
Post by: codeur on February 19, 2010, 08:26:59 am
Thanks jomeggs for the help. I was going to try the environment variable solution over the week-end, but now that Cryogen has written a plugin, I'll of course try that one first.
Cryogen, your post is very timely. Thanks for the DoxyBlocks plugin.
Title: Re: Doxygen plug-in
Post by: jomeggs on February 19, 2010, 10:43:46 am
Hi Guys,
Inspired by jomeggs' script I have written a doxygen integration plug-in for Code::Blocks....
 Gary.

Hi Gary, happy to hear that, saves lots of work for me  :D. I'm off for holidays now, will test your new plugin after return.
Title: Re: Doxygen script plugin
Post by: Cryogen on February 19, 2010, 09:21:33 pm

 OK, cool. Enjoy the break. :-)