On Thu, 2 Oct 2008 17:25:13 +1000 "Lex Trotman" elextr@gmail.com wrote:
Hi,
We use several different build systems and need the build system interface to be generalised somewhat. We use Jam, Waf, Scons make and others because we combine code from lots of sources. Although we can change the commands there are still some hard coded bits that cause problems, eg some builders don't have all targets so make all menu action confuses them and one product uses a pre-processor before the C++ compiler and it doesn't like the -o option so we can't use the compile menu item.
First, for non-trivial projects we suggest using Makefiles. The project 'Make in base path' setting with a master Makefile will work for building everything. It sounds like the main problem after that would be getting the Make Object command to work for folders with no Makefile.
I am willing to have a hack at the changes (provided time and ability permit) but it seemed sensible to check what is in progress or others are doing.
Sounds good, I think there is room for improvement in the build commands. But I think this will require a lot of discussion on this ML before we can agree on what should be done.
The suggestions are:
- make all the compile/link/build commands project specific, or from
global settings if not defined for project
Certainly project-specific make commands would be useful.
The compile & build commands are intended as simple commands. But maybe this is confusing to have these two different ways for building.
...
- replace the build menu 'make all' and 'make target' with one
'build ->' with a submenu listing the available targets configurable from a dialog
We don't want to replace an easy to find Make All item, but there is a similar item on the TODO list. There could be a list of recent custom targets remembered and shown in a submenu.
...
- (optional time permitting) have a set of templates which provide
common setups and which can be selected at project creation
This shouldn't be in the core of Geany. Configuring build commands is a useful and generic feature, but templates for building certain projects is not really part of the Geany philosophy. It could be done in a plugin though.
Regards, Nick