[Lazarus] Project Group support in the IDE

Sven Barth pascaldragon at googlemail.com
Sat Sep 14 19:01:26 CEST 2013


On 14.09.2013 18:54, Marc Santhoff wrote:
> On Sa, 2013-09-14 at 13:19 +0100, Graeme Geldenhuys wrote:
>> On 2013-09-14 04:24, Marc Santhoff wrote:
>>> If I'm doing releases having to start lazarus, finding and opening the
>>> project, setting some config values, would all be far to many actions. I
>>> really prefer using makefiles or something similar.
>>
>> To be honest... I find the Lazarus way of doing things - especially for
>> switching between debug and release builds pretty horrific. What I do is
>> use Lazarus for development (mostly) - thus debug builds. I then switch
>> to MSEide to do release builds. MSEide allows switching build modes much
>> easier, and guarantees that ALL units (including external frameworks,
>> components etc) involved in the project share the same compiler settings.
>>
>> At the moment I'm not so concerned about release builds, but rather to
>> speed up the way I work with parts of a large project.
>
> Can you please explain to a person never having used any Delphi with
> version numbers above 3 what exactly those project groups are doing?
> Meanwhile I think I totally misunderstood your target.

A project groups allow you to have multiple projects (packages, 
libraries, executables) inside one project. The IDE shows you a flat 
tree of your projects whereby one project is the active one (that one 
will be used by "run", "compile", etc. shortcuts. You can compile 
inactive projects by selecting the approbiate menu item ("compile" or 
"build") from the context menu of the project. Switching the project 
simply involves double clicking another project whereby the open source 
editor files are not changed(!).

> Can project groups build multiple projects all having their own compiler
> settings?

Yes. They are all basically independant projects that happen to be 
grouped together (but see below for an addendum).

> And why would you want to recompile all project when not doing a
> release, do you want to force the dependency packages to be rebuilt or
> what else?

Using group projects you can define dependencies between projects. E.g. 
you could have a package which contains shared units and one library and 
two executables. The latter three all need the first one and one of the 
two executables also needs the library to run. So you can set up the 
dependencies accordingly and the IDE will ensure that each needed 
project is recompiled if you compile one.

Note: The package dependency case is already solved by Lazarus in a 
different way.

Regards,
Sven




More information about the Lazarus mailing list