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)
- menue entries changed for Chinese 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]
interesting! :D
Quote from: JGM on April 11, 2008, 07:57:03 PM
interesting! :D
Yes, and it works! At least for me... :lol:
If anyone tried it with linux, please tell me!
Quote from: jomeggs on April 13, 2008, 12:57:52 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
Quote from: pasgui on April 13, 2008, 11:47:51 AM
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)
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
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.
Quote from: jomeggs on April 13, 2008, 07:01:03 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.
The most common use of dependencies is, if they are libraries or dll's which your project needs.
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...
*
*/
Quote from: 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...
*
*/
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".
Jomeggs, Thank you for this script ! :D
It is very easy to use and very effective ! ^^
THANKS !
Quote from: Ekinoks on June 11, 2008, 05:19:07 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.
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?
Hi rockstar1701,
maybe, it is enough to comment out the following line in the script:
// 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...
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.
Jomeggs,
Thank you very much for this splendid plugin. I find it very useful.
Theo.
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.
@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?
Quote from: jomeggs on March 15, 2009, 03:06:10 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 _()!
@jens
That clarifies the problem with Chinese characters, thank you!
Sorry,
Were can I download the plugin: it seems that it has been deleted.
Thanks by advance. Cheers,
Hilaire
Quote from: jomeggs on April 11, 2008, 06:45:28 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?
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
Quote from: jomeggs on July 05, 2009, 01:09:03 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!
Quote from: MortenMacFly on July 06, 2009, 07:37:30 AM
Quote from: jomeggs on July 05, 2009, 01:09:03 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...
Quote from: kfmfe04 on July 06, 2009, 04:30:49 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...
Quote from: jomeggs on July 07, 2009, 01:03:24 AM
Quote from: kfmfe04 on July 06, 2009, 04:30:49 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
Wow! This is >FANTASTIC<!
The call graphs are especially useful for detecting loops and avoiding "calling upwards" - excellent!
Thank you so much!!!
- Ken
Thank you very much jomeggs!
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?
Quote from: 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):
...
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.
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
Quote from: gd_on on July 08, 2009, 04:24:05 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.
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):
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
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.
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
Quote from: jomeggs on July 07, 2009, 01:03:24 AM
Quote from: kfmfe04 on July 06, 2009, 04:30:49 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.
Quote from: ndelectro on July 15, 2009, 08:56:24 AM
Quote from: jomeggs on July 07, 2009, 01:03:24 AM
Quote from: kfmfe04 on July 06, 2009, 04:30:49 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.next.codeblocks.org/index.php?action=dlattach;topic=8213.0;attach=3481
thank you, ollydbg
now I see it to.
I tested it under Ubuntu 8.04 and it works great!!!
Quote from: ollydbg on July 15, 2009, 09:05:03 AM
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?
Quote from: jomeggs on July 15, 2009, 09:14:54 PM
Quote from: ollydbg on July 15, 2009, 09:05:03 AM
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
works fine in ubuntu 9.04 and C::B 8.02
thankx for sharing!
Quote from: ollydbg on July 15, 2009, 09:05:03 AM
Quote from: ndelectro on July 15, 2009, 08:56:24 AM
Quote from: jomeggs on July 07, 2009, 01:03:24 AM
Quote from: kfmfe04 on July 06, 2009, 04:30:49 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.next.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...
Is there a user manual somewhere?
We want to customise output of Doxygen, either by provided the .doxyfile or generating is withinC::B
Ajay
Quote from: ajaywazir on September 03, 2009, 07:14:55 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
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
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.
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
Thanks for your hints. I'll take a deeper look for them before starting my own plugin.
Quote from: jomeggs on July 15, 2009, 09:14:54 PM
Quote from: ollydbg on July 15, 2009, 09:05:03 AM
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.
Quote from: killerbot on September 06, 2009, 01:36:39 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.
ok, question number one :
what is your oprating system for your development environment ?
Windows or linux ?
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
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++ ;-)
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?
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.
Quote from: killerbot on September 07, 2009, 04:50:15 PM
CB brings wxFlatNotebook.
Ok, found it. After compiling "wxSmith - Contrib Items" the rest went well.
There is a global variable
- 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.
Quote from: jomeggs on September 07, 2009, 05:10:21 PM
There is a global variable - 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.
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
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 .
Thanks, but my only intention was to understand the item...
@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.
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?
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!
Hi Guys,
Inspired by jomeggs' script I have written a doxygen integration plug-in for Code::Blocks.
Please see http://forums.next.codeblocks.org/index.php/topic,12052 (http://forums.next.codeblocks.org/index.php/topic,12052) for details.
Thanks for the script and the inspiration.
Gary.
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.
Quote from: 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....
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.
OK, cool. Enjoy the break. :-)