other: maybe can add custom tool's buttons(which can enalbe or disable),So you can use it .You can do thsi already with the Tools / Tools plus plugin. THen, assign a shortcut to this menu entry using the KeyBinder plugin.
Add "Download" button into Compiler Framework.Do you have more details on this? I am not sure if I understand what you want this button to actually do.
you can define command by yourself. and select one "download tool" from the ComboBox.
Do you have more details on this? I am not sure if I understand what you want this button to actually do.I guess he means "download to target" for embedded development. Fort this step you usually have to call a certain tool depending on the framework / target platform you use.
I thing it will be more useful to add ability to redefine "Run" action for the target. For example, when I compile for AVR I don`t need to run output binary on host system and I wont to flash it to target MCU. It is comfortably to use same key for this action that I use to run desktop program.
Another idea - allow to launch Tools/Tools+ command on "Run".You can do this already now by using macros in the Tools/Tools+ setup.
Adding variable substitution to the run target would be a useful feature I think.What do you mean by that? I didn't get the idea.
I was also hoping to convince the other devs to make the "commands only" target runnable. This would add some flexibility as well.You know usually its easier to convince people with a patch... ;D
Adding variable substitution to the run target would be a useful feature I think.What do you mean by that? I didn't get the idea.
I was also hoping to convince the other devs to make the "commands only" target runnable. This would add some flexibility as well.You know usually its easier to convince people with a patch... ;D
Wasn't sure what the rationale was for commands only and whether it was a conscious decision that it should not be "runnable"Well the issue here is: What to run? There is no executable produced or alike. So it will need some tweaking - currently C::B would report that the executable has not been built yet. Note that pre- and post-build steps actually should work. So what exactly would you "run"?
Another idea - allow to launch Tools/Tools+ command on "Run".You can do this already now by using macros in the Tools/Tools+ setup.
Wasn't sure what the rationale was for commands only and whether it was a conscious decision that it should not be "runnable"Well the issue here is: What to run? There is no executable produced or alike. So it will need some tweaking - currently C::B would report that the executable has not been built yet. Note that pre- and post-build steps actually should work. So what exactly would you "run"?
If it is an interpreted language, it would be the command to run the main module. No "build" is required but there might some deployment steps that could be put in the pure/post build commands.And what would be the difference to a pre-/ post-build step in the commands only target? (Sorry to maybe sound dumb - but I still don't see the advantage and seem missing the obvious...?!)
If it is an interpreted language, it would be the command to run the main module. No "build" is required but there might some deployment steps that could be put in the pure/post build commands.And what would be the difference to a pre-/ post-build step in the commands only target? (Sorry to maybe sound dumb - but I still don't see the advantage and seem missing the obvious...?!)
My idea is that interpreted (or any other non-compiled) projects be able to use the build framework like compiled projects.Oh - OK. But doesn't this require even more changes? Like adopting the build framework?
Index: src/plugins/compilergcc/compilergcc.cpp
===================================================================
--- src/plugins/compilergcc/compilergcc.cpp (revision 8684)
+++ src/plugins/compilergcc/compilergcc.cpp (working copy)
@@ -1880,9 +1880,15 @@
else
{
// commands-only target?
- cbMessageBox(_("You can't \"run\" a commands-only target..."));
- m_pProject->SetCurrentlyCompilingTarget(0);
- return -1;
+ if (target->GetHostApplication().IsEmpty())
+ {
+ cbMessageBox(_("You must select a host application to \"run\" a commands-only target..."));
+ m_pProject->SetCurrentlyCompilingTarget(0);
+ return -1;
+ }
+ Manager::Get()->GetMacrosManager()->ReplaceEnvVars(hostapStr);
+ command << hostapStr << strSPACE;
+ command << target->GetExecutionParameters();
}
wxString script = command;
@@ -1903,7 +1909,7 @@
cmd << command;
Manager::Get()->GetLogManager()->Log(_("Checking for existence: ") + f.GetFullPath(), m_PageIndex);
- if (!wxFileExists(f.GetFullPath()))
+ if ( (target->GetTargetType() != ttCommandsOnly) && !wxFileExists(f.GetFullPath()) )
{
int ret = cbMessageBox(_("It seems that this project has not been built yet.\n"
"Do you want to build it now?"),
Assuming I understand the idea being discussed, the following would be the core of the necessary changes (I think):Well if thats what dmoore means its OK with me. But I assumed he means even more: Like calling a certain pre-compiler in the build stage... but I might think too complicated...
For now, Alpha's patch is good enough for me :) (I haven't tested yet)OK, nice - well that is easy, indeed.
(Note: this code was very quickly stuck together; do not commit without changing/fixing/polishing.)Put it to the queue once ready...
Put it to the queue once ready...Okay; will do after I finish testing.
Index: src/plugins/compilergcc/compilergcc.cpp
===================================================================
--- src/plugins/compilergcc/compilergcc.cpp (revision 8685)
+++ src/plugins/compilergcc/compilergcc.cpp (working copy)
@@ -1880,9 +1880,16 @@
else
{
// commands-only target?
- cbMessageBox(_("You can't \"run\" a commands-only target..."));
- m_pProject->SetCurrentlyCompilingTarget(0);
- return -1;
+ if (target->GetHostApplication().IsEmpty())
+ {
+ cbMessageBox(_("You must select a host application to \"run\" a commands-only target..."));
+ m_pProject->SetCurrentlyCompilingTarget(0);
+ return -1;
+ }
+ command << hostapStr << strSPACE;
+ command << target->GetExecutionParameters();
+ Manager::Get()->GetMacrosManager()->ReplaceMacros(command, target);
+ Manager::Get()->GetMacrosManager()->ReplaceEnvVars(command);
}
wxString script = command;
@@ -1903,12 +1910,12 @@
cmd << command;
Manager::Get()->GetLogManager()->Log(_("Checking for existence: ") + f.GetFullPath(), m_PageIndex);
- if (!wxFileExists(f.GetFullPath()))
- {
+ if ( (target->GetTargetType() != ttCommandsOnly) && !wxFileExists(f.GetFullPath()) )
+ {
int ret = cbMessageBox(_("It seems that this project has not been built yet.\n"
- "Do you want to build it now?"),
- _("Information"),
- wxYES_NO | wxCANCEL | wxICON_QUESTION);
+ "Do you want to build it now?"),
+ _("Information"),
+ wxYES_NO | wxCANCEL | wxICON_QUESTION);
switch (ret)
{
case wxID_YES: