Author Topic: Script C::B  (Read 11097 times)

Offline jens

  • Administrator
  • Lives here!
  • *****
  • Posts: 7253
    • Jens' unofficial debian-repository for the Code::Blocks - IDE
Re: Script C::B
« Reply #15 on: December 07, 2011, 03:17:40 pm »
FilesList * ProjectBuildTarget::GetFilesList() seems not to work. It was implemented in svn r1433, but m_Files (the member-variable, that is returned) was never filled as far as I can see after a quick look.
It's only used in Export targets as project, if I see correctly, and I nevr used this option, so I do not know, if it ever worked as expected.

It looks quite confusing, but I think you'll find that m_Files in ProjectBuildTarget is filled by the project loader when the targets are built by ProjectFile.

I found this and have fixed the export_target_to_project-function (this was indeed broken after switching to wxHashSet, stupid comparison-error) in trunk in the meantime.

@LETARTARE (and of course everybody who is interested):
Can you please test the attached patch ?

It reimplements GetFile(index) for projects and implements it for (projectbuild-)targets.
To get the buildtargets of a projectfile, I use your first approach (the same way it is doen for compilerVar).

I only tested it with the make_dist.script until now (no time at the moment).

EDIT:
Patch updated: http://forums.codeblocks.org/index.php/topic,15596.msg105399.html#msg105399
« Last Edit: December 13, 2011, 12:06:26 am by jens »

Offline LETARTARE

  • Regular
  • ***
  • Posts: 395
  • L'ami de l'homme.The friend of man.
Re: Script C::B
« Reply #16 on: December 07, 2011, 03:20:45 pm »
thanks
I try ...
C::B  : svn11972, wx-3.1.1, plugins : QtPregen-2.7.2-sdk147
1-Win 7 Business Pack 1 64bits : gcc-8.1.0,
2-OpenSuse-15.1-Leap 64bits :  gcc-7.5., 8.1.0,
=> !! The messages are translated by Deepl !!

Offline LETARTARE

  • Regular
  • ***
  • Posts: 395
  • L'ami de l'homme.The friend of man.
Re: Script C::B
« Reply #17 on: December 08, 2011, 01:05:15 pm »
tested with /
Vista Basic Pack 2?  Mingw32 with TDM-GCC 4.4/4.5 Series
Code:: Blocks  SVN 7620


===> 'Int ProjectBuildTarget::GetFilesCount ()' <===
===> 'ProjectFile * ProjectBuildTarget::GetFile (int)' <===
using the script 'lisfilestarget.script' as follows:

Code: [Select]
///-----------------------------------------------------------------------------
/// use new methods (patch 'reimplement_GetFile_index_20111207-1.patch')
/// ===> 'int ProjectBuildTarget::GetFilesCount()' <===
///  ===> 'ProjectFile * ProjectBuildTarget::GetFile(int)' <===
///  svn in 7887 .. 7600
///-----------------------------------------------------------------------------

///-----------------------------------------------------------------------------
/// display all files targets
// affiche tous les fichiers de chaque cible
///-----------------------------------------------------------------------------
class DisplayAllFilesTargets extends cbScriptPlugin {
/// members
// membres
VERSION = _T("0.3.0");
///-----------------------------------------------------------------------------
/// mandatory to init script plugin
// obligatoire pour initialiser le script d'extension
///-----------------------------------------------------------------------------
constructor() {
/// constructor base class
// constructeur de la classe de base
cbScriptPlugin.constructor();
/// setup the plugin's info
// les informations de l'extension
info.name = _T("DisplayAllFilesTargets");
info.title = _("Display files targets");
info.version = VERSION;
info.license = _T("GPL");
}
///-----------------------------------------------------------------------------
/// to create context menu entries
// pour créer les entrées du menu de contexte
///-----------------------------------------------------------------------------
function GetModuleMenu(who, data) {
local entries = ::wxArrayString();
   if (who == ::mtProjectManager)   {
            entries.Add(_("Display files targets"), 1);
   }
return entries;
}
///-----------------------------------------------------------------------------
/// calback for context menu items clicking
// évènement lors d'une action sur les entrées du menu de contexte
///-----------------------------------------------------------------------------
function OnModuleMenuClicked(index) {
main();
}
///-----------------------------------------------------------------------------
///displays all files of each target on script console
// affiche dans la console de script, les fichiers de chaque cible
///-----------------------------------------------------------------------------
function main() {
/// general
local Project = GetProjectManager().GetActiveProject();
local Ntargets = Project.GetBuildTargetsCount() ;
//----------------------------------------------
/// file relative name
// le nom relatif d'un fichier
local file;
local target;
local nfiles;
local i=0;
/// informations
local Mes = _T("Project : '") + Project.GetTitle() + _T("' : ") ;
Mes += Project.GetFilesCount().tostring() + _T(" files, ") ;
Mes +=  Ntargets.tostring() + _T(" targets : ") ;
::print(Mes );
/// all project targets
// toutes les cibles du projet
for (local ti=0; ti < Ntargets ; ti++ ) {
target = Project.GetBuildTarget(ti) ;
Mes = _T("\nTarget ") + ti.tostring() + _T(" : '") ;
Mes += target.GetFullTitle() + _T("'") ;
::print(Mes);
///------------- patch to 'ProjectBuildTarget' class ---------------------------
nfiles = target.GetFilesCount();
///-----------------------------------------------------------------------------
/// all files target
// tous les fichiers d'une cible
for (local nf =0 ; nf < nfiles ; nf++) {
///------------- patch to 'ProjectBuildTarget' class ---------------------------
file = target.GetFile(nf).relativeFilename;;
///-----------------------------------------------------------------------------
::print (_T("   ") + nf.tostring() + _T(" : '") + file + _T("'"));
i++;
}
}
::print(_T("\nTotal files associated to targets : ") + i.tostring());
}
///-----------------------------------------------------------------------------

} /// class end

///-----------------------------------------------------------------------------
/// this call actually registers the script plugin with Code::Blocks
// register le script d'extension dans Code::Blocks
///-----------------------------------------------------------------------------
RegisterPlugin(DisplayAllFilesTargets());
///-----------------------------------------------------------------------------
===> 'ProjectFile * cbProject::GetFile (int)' <===
using 'make_dist.script' and 'find_broken_files.script'
works very well.

« Last Edit: December 08, 2011, 01:08:56 pm by LETARTARE »
C::B  : svn11972, wx-3.1.1, plugins : QtPregen-2.7.2-sdk147
1-Win 7 Business Pack 1 64bits : gcc-8.1.0,
2-OpenSuse-15.1-Leap 64bits :  gcc-7.5., 8.1.0,
=> !! The messages are translated by Deepl !!

Offline LETARTARE

  • Regular
  • ***
  • Posts: 395
  • L'ami de l'homme.The friend of man.
Re: Script C::B
« Reply #18 on: December 08, 2011, 01:11:30 pm »
 I forgot 'wxArrayString ProjectFile::buildtargets', I go back!
C::B  : svn11972, wx-3.1.1, plugins : QtPregen-2.7.2-sdk147
1-Win 7 Business Pack 1 64bits : gcc-8.1.0,
2-OpenSuse-15.1-Leap 64bits :  gcc-7.5., 8.1.0,
=> !! The messages are translated by Deepl !!

Offline LETARTARE

  • Regular
  • ***
  • Posts: 395
  • L'ami de l'homme.The friend of man.
Re: Script C::B
« Reply #19 on: December 08, 2011, 03:02:28 pm »
Here is the test forgot ...

===> 'ProjectFile * cbProject::GetFile int()' <===
===> 'wxArrayString ProjectFile.buildTargets' <===
using the script 'lisfilesproject.script' as follows:
Code: [Select]
/*******************************************************************************
 * Name:      listfilesproject.script
 * Purpose:   Script plugin in CODE::BLOCKS
 * Author:    LETARTARE (http://forums.codeblocks.org)
 * Created:   2011-12-08
 * Version    0.3.0
 * Copyright: LETARTARE
 * License:   GPL
 ******************************************************************************/

///-----------------------------------------------------------------------------
/// use new methods (patch 'reimplement_GetFile_index_20111207-1.patch')
/// ===> 'ProjectFile * cbProject::GetFile(int)' <===
/// ===> 'wxArrayString ProjectFile::buildTargets' <===
///  svn in 7888 .. 7600
///-----------------------------------------------------------------------------

///-----------------------------------------------------------------------------
/// display all files projects with cibles
// affiche tous les fichiers avec leurs cibles
///-----------------------------------------------------------------------------
class DisplayAllFilesProject extends cbScriptPlugin {
/// members
// membres
VERSION = _T("0.3.0");
///-----------------------------------------------------------------------------
/// mandatory to init script plugin
// obligatoire pour initialiser le script d'extension
///-----------------------------------------------------------------------------
constructor() {
/// constructor base class
// constructeur de la classe de base
cbScriptPlugin.constructor();
/// setup the plugin's info
// les informations de l'extension
info.name = _T("DisplayAllFilesProject");
info.title = _("Display files project");
info.version = VERSION;
info.license = _T("GPL");
}
///-----------------------------------------------------------------------------
/// to create context menu entries
// pour créer les entrées du menu de contexte
///-----------------------------------------------------------------------------
function GetModuleMenu(who, data) {
local entries = ::wxArrayString();
    if (who == ::mtProjectManager)   {
            entries.Add(_("Display files project"), 1);
    }
return entries;
}
///-----------------------------------------------------------------------------
/// calback for context menu items clicking
// évènement lors d'une action sur les entrées du menu de contexte
///-----------------------------------------------------------------------------
function OnModuleMenuClicked(index) {
main();
}
///-----------------------------------------------------------------------------
///displays all files of each target on script console
// affiche dans la console de script, les fichiers de chaque cible
///-----------------------------------------------------------------------------
function main() {
/// general
local Project = GetProjectManager().GetActiveProject();
local Ntargets = Project.GetBuildTargetsCount() ;
local Nf = Project.GetFilesCount();
//----------------------------------------------
/// file relative name
local name;
/// informations
local Mes = _T("Project : '") + Project.GetTitle() + _T("' : ") ;
Mes += Nf.tostring() + _T(" files, ") ;
Mes +=  Ntargets.tostring() + _T(" targets : ") ;
::print(Mes );
/// array targets
local tabtargets;
local nt;
local target;
local prjfile;
// all files
for (local u =0 ; u < Nf; u++ ) {
///------------------ patch to 'Project' class ---------------------------------
prjfile = Project.GetFile(u);
///-----------------------------------------------------------------------------
name = prjfile.relativeFilename
/// copy
///----------------- patch to 'ProjectFile' class ------------------------------
tabtargets = prjfile.buildTargets;
///-----------------------------------------------------------------------------
nt = tabtargets.GetCount();
Mes = u.tostring() + _T("- '") + name + _T("'") ;
Mes += _T(" is linked to ") + nt.tostring() + _T(" target(s)")
::print(Mes);
Mes = _T("");
/// all file targets
for (local t=0; t < nt; t++) {
target = tabtargets.Item(t);
Mes += _T(" '")+  target + _T("',") ;
}
::print (Mes);
}
}
///-----------------------------------------------------------------------------
} /// class end

///-----------------------------------------------------------------------------
/// this call actually registers the script plugin with Code::Blocks
// register le script d'extension dans Code::Blocks
///-----------------------------------------------------------------------------
RegisterPlugin(DisplayAllFilesProject());
///-----------------------------------------------------------------------------

everything is working properly.

@jens
How do svn <= 7587 (at least for release 10.05 and svn7550) ?

secondly, why allow access directly to the attributes of 'ProjectFile'?
why not use access methods such as 'GetBuildTargets ()' or 'GetRelativeFilename' because the user does not have to change these variables?


C::B  : svn11972, wx-3.1.1, plugins : QtPregen-2.7.2-sdk147
1-Win 7 Business Pack 1 64bits : gcc-8.1.0,
2-OpenSuse-15.1-Leap 64bits :  gcc-7.5., 8.1.0,
=> !! The messages are translated by Deepl !!

Offline LETARTARE

  • Regular
  • ***
  • Posts: 395
  • L'ami de l'homme.The friend of man.
Re: Script C::B
« Reply #20 on: December 12, 2011, 08:08:08 am »
@jens
I'm sorry, but my previous tests were incomplete.
both methods :
Quote
 ===> 'int ProjectBuildTarget::GetFilesCount ()' <===
  ===> 'ProjectFile * ProjectBuildTarget::GetFile (int)' <===
do not work properly.
I used a very simple project with a file 'main.cpp' and two targets
here's the result at the beginning (with my plugin script )
Quote
Project : 'wxProjetVide' : 1 files, 2 targets :

Target 0 : 'wxProjetVide - Release'
   0 : 'main.cpp'

Target 1 : 'wxProjetVide - Debug'
   0 : 'main.cpp'

Total files associated to targets : 2
then I delete the 'main.cpp and add it again', the result: two 'main.cpp'!
Quote
Total files associated to targets : 2
Project : 'wxProjetVide' : 1 files, 2 targets :

Target 0 : 'wxProjetVide - Release'
   0 : 'main.cpp'
   1 : 'main.cpp'

Target 1 : 'wxProjetVide - Debug'
   0 : 'main.cpp'
   1 : 'main.cpp'

Total files associated to targets : 4
it is a fantastic result. I think they do not like 'HASH'!
enough joking, I apologize for any inconvenience.
C::B  : svn11972, wx-3.1.1, plugins : QtPregen-2.7.2-sdk147
1-Win 7 Business Pack 1 64bits : gcc-8.1.0,
2-OpenSuse-15.1-Leap 64bits :  gcc-7.5., 8.1.0,
=> !! The messages are translated by Deepl !!

Offline jens

  • Administrator
  • Lives here!
  • *****
  • Posts: 7253
    • Jens' unofficial debian-repository for the Code::Blocks - IDE
Re: Script C::B
« Reply #21 on: December 13, 2011, 12:03:19 am »
@jens
I'm sorry, but my previous tests were incomplete.
both methods :
Quote
 ===> 'int ProjectBuildTarget::GetFilesCount ()' <===
  ===> 'ProjectFile * ProjectBuildTarget::GetFile (int)' <===
do not work properly.
I used a very simple project with a file 'main.cpp' and two targets
here's the result at the beginning (with my plugin script )

I have seen it already.

The attached patch should fix this (and similar issues).

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9580
Re: Script C::B
« Reply #22 on: December 13, 2011, 07:16:46 am »
The attached patch should fix this (and similar issues).
I don't know what's wrong again. While the latest patches of you did work, these two show an error: "Chunk info expected". :-( I even tried to convert them to Windows line-feed etc... it doesn't help.

Did you do something different this time?
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline jens

  • Administrator
  • Lives here!
  • *****
  • Posts: 7253
    • Jens' unofficial debian-repository for the Code::Blocks - IDE
Re: Script C::B
« Reply #23 on: December 13, 2011, 01:26:31 pm »
The attached patch should fix this (and similar issues).
I don't know what's wrong again. While the latest patches of you did work, these two show an error: "Chunk info expected". :-( I even tried to convert them to Windows line-feed etc... it doesn't help.

Did you do something different this time?
I just tested it with TortoiseSVN (1.7.1) on XP and it works without any errors.

Offline LETARTARE

  • Regular
  • ***
  • Posts: 395
  • L'ami de l'homme.The friend of man.
Re: Script C::B
« Reply #24 on: December 13, 2011, 03:28:06 pm »
with the two previous scripts plugin.
I just tested it with svn 7633 and it works without any errors.
C::B  : svn11972, wx-3.1.1, plugins : QtPregen-2.7.2-sdk147
1-Win 7 Business Pack 1 64bits : gcc-8.1.0,
2-OpenSuse-15.1-Leap 64bits :  gcc-7.5., 8.1.0,
=> !! The messages are translated by Deepl !!

Offline jens

  • Administrator
  • Lives here!
  • *****
  • Posts: 7253
    • Jens' unofficial debian-repository for the Code::Blocks - IDE
Re: Script C::B
« Reply #25 on: December 17, 2011, 02:55:55 pm »
with the two previous scripts plugin.
I just tested it with svn 7633 and it works without any errors.
I just committed the patch in svn r7639 .

Offline LETARTARE

  • Regular
  • ***
  • Posts: 395
  • L'ami de l'homme.The friend of man.
Re: Script C::B
« Reply #26 on: December 17, 2011, 03:04:11 pm »
Quote
I just committed the patch in svn r7639 .
I care and I test svn 7639
I wrote the equivalent for svn <7588.
C::B  : svn11972, wx-3.1.1, plugins : QtPregen-2.7.2-sdk147
1-Win 7 Business Pack 1 64bits : gcc-8.1.0,
2-OpenSuse-15.1-Leap 64bits :  gcc-7.5., 8.1.0,
=> !! The messages are translated by Deepl !!

Offline LETARTARE

  • Regular
  • ***
  • Posts: 395
  • L'ami de l'homme.The friend of man.
Re: Script C::B
« Reply #27 on: December 19, 2011, 01:35:55 pm »
Quote
I care and I test svn 7639
big thank you to 'jens' for the work done (days have 72 hours!)

My test results on r7639 :

I check 'wxArrayString ProjectFile::buildTargets'  and  'ProjectFile * cbProject::GetFile(int)'
with  script plugin : 'listfilesproject.script'
Code: [Select]
/*******************************************************************************
 * Name:      listfilesproject.script
 * Purpose:   Script plugin in CODE::BLOCKS
 * Author:    LETARTARE (http://forums.codeblocks.org)
 * Created:   2011-12-17
 * Version    0.4.0
 * Copyright: LETARTARE
 * License:   GPL
 ******************************************************************************/
/// ATTENTION
///-----------------------------------------------------------------------------
/// ** for svn r7639 ** (by 'jens')
///-----------------------------------------------------------------------------
///  ** for svn in r7588..r7639 **, 'GetFile(int)' was deleted !!!
/// patch 'reimplement_GetFile_index_20111212-1.patch' in r7639 (by 'jens')
/// this script use new methods of patch:
/// use, add ====> 'wxArrayString ProjectFile::buildTargets' <==== use
///   add => 'int ProjectBuildTarget::GetFilesCount()' <=
/// add => 'ProjectFile* ProjectBuildTarget* GetFile(int)' <=
/// use, add ====> 'ProjectFile * cbProject::GetFile(int)'   <==== use
///-----------------------------------------------------------------------------
///  ** for svn < r7588 **  (release 10.05, svn7550, ..)
/// no official patch : 'projectbuildtarget_GetFiles.patch'
/// this script use one new method of patch :
/// use, add ====> 'wxArrayString ProjectFile::buildTargets' <==== use
/// add => 'int ProjectBuildTarget::GetFilesCount()' <=
/// add => 'ProjectFile* ProjectBuildTarget* GetFile(int)' <=
///-----------------------------------------------------------------------------

///-----------------------------------------------------------------------------
/// display all files projects with cibles
///-----------------------------------------------------------------------------
class DisplayAllFilesProject extends cbScriptPlugin {
/// members
// membres
VERSION = _T("0.4.0");
///-----------------------------------------------------------------------------
/// mandatory to init script plugin
///-----------------------------------------------------------------------------
constructor() {
/// constructor base class
cbScriptPlugin.constructor();
/// setup the plugin's info
info.name = _T("DisplayAllFilesProject");
info.title = _("Display files project");
info.version = VERSION;
info.license = _T("GPL");
}
///-----------------------------------------------------------------------------
/// to create context menu entries
///-----------------------------------------------------------------------------
function GetModuleMenu(who, data) {
local entries = ::wxArrayString();
   if (who == ::mtProjectManager)   {
            entries.Add(_("Display files project"), 1);
   }
return entries;
}
///-----------------------------------------------------------------------------
/// calback for context menu items clicking
///-----------------------------------------------------------------------------
function OnModuleMenuClicked(index) {
main();
}
///-----------------------------------------------------------------------------
///displays all files of each target on script console
///-----------------------------------------------------------------------------
function main() {
/// general
local Project = GetProjectManager().GetActiveProject();
local Ntargets = Project.GetBuildTargetsCount() ;
local Nf = Project.GetFilesCount();
//----------------------------------------------
/// file relative name
local name;
/// informations
local Mes = _T("Project : '") + Project.GetTitle() + _T("' : ") ;
Mes += Nf.tostring() + _T(" files, ") ;
Mes +=  Ntargets.tostring() + _T(" targets : ") ;
::print(Mes );
/// array targets
local tabtargets;
local nt;
local target;
local prjfile;
/// all files
for (local u =0 ; u < Nf; u++ ) {
///-- only >= r7588------ patch to 'Project' class -----------------------------
prjfile = Project.GetFile(u);
///-----------------------------------------------------------------------------
name = prjfile.relativeFilename
/// copy
///-------------------- patch to 'ProjectFile' class ---------------------------
tabtargets = prjfile.buildTargets;
///-----------------------------------------------------------------------------
nt = tabtargets.GetCount();
Mes = u.tostring() + _T("- '") + name + _T("'") ;
Mes += _T(" is linked to ") + nt.tostring() + _T(" target(s)")
::print(Mes);
Mes = _T("");
/// all file targets
for (local t=0; t < nt; t++) {
target = tabtargets.Item(t);
Mes += _T(" '")+  target + _T("',") ;
}
::print (Mes);
}
} /// end main()

} /// class end
///-----------------------------------------------------------------------------
/// this call actually registers the script plugin with Code::Blocks
///-----------------------------------------------------------------------------
RegisterPlugin(DisplayAllFilesProject());
///-----------------------------------------------------------------------------
no problem using the methods.

I check 'int ProjectBuildTarget::GetFilesCount()'  and  'ProjectFile* ProjectBuildTarget* GetFile(int)'
with  script plugin : 'listfilestargets.script' :
Code: [Select]
/*******************************************************************************
 * Name:      listfilestargets.script
 * Purpose:   Script plugin in CODE::BLOCKS
 * Author:    LETARTARE (http://forums.codeblocks.org)
 * Created:   2011-12-17
 * Version    0.5.0
 * Copyright: LETARTARE
 * License:   GPL
 ******************************************************************************/
/// ATTENTION
///-----------------------------------------------------------------------------
/// ** for svn r7639 ** (by 'jens')
///-----------------------------------------------------------------------------
///  ** for svn in r7588..r7639 **, 'GetFile(int)' was deleted !!!
/// patch 'reimplement_GetFile_index_20111212-1.patch' in r7639 (by 'jens')
/// this script use two new methods of patch :
///   add => 'wxArrayString ProjectFile::buildTargets' <=
/// use, add ====> 'int ProjectBuildTarget::GetFilesCount()' <====
/// use, add ====> 'ProjectFile* ProjectBuildTarget* GetFile(int)' <====
///   add => 'ProjectFile * cbProject::GetFile(int)'   <=
///-----------------------------------------------------------------------------
///  ** for svn < r7588 **  (release 10.05, svn7550, ..)
/// no official patch : 'projectbuildtarget_GetFiles.patch'
/// this script use two new methods of patch :
/// add => 'wxArrayString ProjectFile::buildTargets' <===
/// use, add ====> 'int ProjectBuildTarget::GetFilesCount()' <==== use
/// use, add ====> 'ProjectFile* ProjectBuildTarget* GetFile(int)' <==== use
///-----------------------------------------------------------------------------

///-----------------------------------------------------------------------------
/// display all files targets
///-----------------------------------------------------------------------------
class DisplayAllFilesTargets extends cbScriptPlugin {
/// members
VERSION = _T("0.5.0");
///-----------------------------------------------------------------------------
/// mandatory to init script plugin
///-----------------------------------------------------------------------------
constructor() {
/// constructor base class
cbScriptPlugin.constructor();
/// setup the plugin's info
info.name = _T("DisplayAllFilesTargets");
info.title = _("Display files targets");
info.version = VERSION;
info.license = _T("GPL");
}
///-----------------------------------------------------------------------------
/// to create context menu entries
///-----------------------------------------------------------------------------
function GetModuleMenu(who, data) {
local entries = ::wxArrayString();
   if (who == ::mtProjectManager)   {
            entries.Add(_("Display files targets only"), 1);
   }
return entries;
}
///-----------------------------------------------------------------------------
/// calback for context menu items clicking
///-----------------------------------------------------------------------------
function OnModuleMenuClicked(index) {
main();
}
///-----------------------------------------------------------------------------
///displays all files of each target on script console
///-----------------------------------------------------------------------------
function main() {
/// general
local Project = GetProjectManager().GetActiveProject();
if (IsNull(Project)) {
ShowError( _("Currently no project is loaded/activated. Cannot continue.") );
return 0;
}
local Ntargets = Project.GetBuildTargetsCount() ;
if (Ntargets == 0) {
ShowError( _("No target in this project. Cannot continue.") );
return 0;
}
local Nfiles = Project.GetFilesCount() ;
if (Nfiles == 0) {
ShowError( _("No file in this project. Cannot continue.") );
return 0;
}
/// file relative name
local file;
local target;
local nfilestarget;
local i=0;
/// informations
local Mes = _T("Project : '") + Project.GetTitle() + _T("' : ") ;
Mes += Nfiles.tostring() + _T(" files, ") ;
Mes +=  Ntargets.tostring() + _T(" targets : ") ;
::print(Mes );
/// all project targets
for (local ti=0; ti < Ntargets ; ti++ ) {
target = Project.GetBuildTarget(ti) ;
Mes = _T("\nTarget ") + ti.tostring() + _T(" : '") ;
Mes += target.GetFullTitle() + _T("'") ;
::print(Mes);
///------------- patch to 'ProjectBuildTarget' class ---------------------------
nfilestarget = target.GetFilesCount();
///-----------------------------------------------------------------------------
if (nfilestarget == 0)
continue;
/// all files target
for (local nf =0 ; nf < nfilestarget ; nf++) {
///------------- patch to 'ProjectBuildTarget' class ---------------------------
file = target.GetFile(nf).relativeFilename;;
///-----------------------------------------------------------------------------
::print (_T("   ") + nf.tostring() + _T(" : '") + file + _T("'"));
i++;
}
}
::print(_T("\nTotal files associated to targets : ") + i.tostring());
} /// end main()

} /// class end
///-----------------------------------------------------------------------------
/// this call actually registers the script plugin with Code::Blocks
///-----------------------------------------------------------------------------
RegisterPlugin(DisplayAllFilesTargets());
///-----------------------------------------------------------------------------
no problem using the methods.

As against the testing of a large project C::B (eg svn 7550) shows a display in the console, which blocks 2 to 3 seconds (at about 2 / 3) and then restarts !

This anomaly does not occur in  r7550 and r6283 (adjusted with patch personnal).

I guess it comes from the refresh of the window ?
Perhaps he should open another topic ?

« Last Edit: December 19, 2011, 03:49:27 pm by LETARTARE »
C::B  : svn11972, wx-3.1.1, plugins : QtPregen-2.7.2-sdk147
1-Win 7 Business Pack 1 64bits : gcc-8.1.0,
2-OpenSuse-15.1-Leap 64bits :  gcc-7.5., 8.1.0,
=> !! The messages are translated by Deepl !!