Page 1 of 1

Non-gui build support

Posted: Tue Jan 31, 2012 1:17 am
by jimg
Hi,

I was wondering on the best approach to modifying CodeLite to be able to load a workspace and project, build a target and then exit with a return code giving success or failure. These would be very simple single target projects without dependencies. Looking through the code, it seems like the GUI is very integrated with the project and build system. Would it be better to:

1) build a separate application without a window that used the workspace and builder parts of the system, but still linked with the wxWidgets code
2) modify the existing app in some way to not open the main window, but still do a build
3) just write a separate workspace and project parser without the wxWidgets references

Thanks!

- jim

Re: Non-gui build support

Posted: Tue Jan 31, 2012 4:00 pm
by eranif
jimg wrote: it seems like the GUI is very integrated with the project and build system. Would it be better to:
Indeed. This can not be done with current code base.

In addition, even if I would add some command line arguments that accepts something like:

Code: Select all

codelite --build /path/to/workspace --configuration 
It will still not be able to run in SSH Window (codelite can not be started with the presence of X server, this limitation comes from the GUI framework: wxWidgets)

Eran

Re: Non-gui build support

Posted: Tue Jan 31, 2012 4:00 pm
by eranif
jimg wrote: it seems like the GUI is very integrated with the project and build system. Would it be better to:
Indeed. This can not be done with current code base.

In addition, even if I would add some command line arguments that accepts something like:

Code: Select all

codelite --build /path/to/workspace --configuration 
It will still not be able to run in SSH Window (codelite can not be started with the presence of X server, this limitation comes from the GUI framework: wxWidgets)

Eran

Re: Non-gui build support

Posted: Wed Feb 01, 2012 1:18 am
by jimg
So, no recommendation on how best to proceed? ;)

I guess what I will do is refactor the existing workspace, project and build classes to not use the wxWidgets code and build a separate app. I just thought I should check to see if anything had already been done in this area before spending much time on it.

At any rate, thanks for a great development environment! I have some other features that I would like to see added and would like to work on, but I need to get this going first.

- jim

Re: Non-gui build support

Posted: Wed Feb 01, 2012 11:14 am
by jfouche
I would like to say that I think it would be a great feature.
I use Continuous Integration on my project, and, if I use CodeLite for my development, I can't use it for production. So I have to maintain 2 environments : the CodeLite workspace / projects, and the VisualStudio solution / projects which can be call on command line to build (well, I know, I can use a makefile and let CodeLite use it ... but it's a long story).

Re: Non-gui build support

Posted: Thu Feb 02, 2012 3:01 pm
by jimg
Hi Jérémie,

I assume that you would want to be able to build the workspace or multiple projects, each project-only or not. Would you want to be able to execute the code as well? I was planning on saving output to a log file, with an option to abort on the first error and return a non-zero error code if there are any errors in the build. Since you are using something similar in the VS world, would you want to take a shot at the command syntax?

Status update: I've got workspace loading and generating the '.mk' files. Just need to add in the building itself.

- jim

Re: Non-gui build support

Posted: Thu Feb 02, 2012 3:56 pm
by jfouche
Hi Jim,
I assume that you would want to be able to build the workspace or multiple projects, each project-only or not.
You're right. What I really need is to build a workspace configuration.
Would you want to be able to execute the code as well?
I don't need to ask CodeLite to execute something, as I can't do it myself (just have to call the executable generated).
I was planning on saving output to a log file, with an option to abort on the first error and return a non-zero error code if there are any errors in the build.
Well I would rather have a output on the console (like when using makefile), because the CI tools manage and analyse the console output.
Since you are using something similar in the VS world, would you want to take a shot at the command syntax?
I use Visual Studio devenv, which have those options.
I use it this way :

Code: Select all

devenv solution.sln /Build ConfigurationName
devenv solution.sln /Clean ConfigurationName

Re: Non-gui build support

Posted: Sat Feb 04, 2012 5:15 am
by jimg
Hi Jérémie,

Okay, that'll work. For my use, I just need to know if it built or not, so I'll have an option to not echo the make output. All seems to be working, just need to clean it up a bit and pick a name for it. CodeLiteBuilder? CLBuild? Any thoughts Eran?

- jim