[Lazarus] suggestion for lazbuild
Mattias Gaertner
nc-gaertnma at netcologne.de
Wed Mar 18 23:08:09 CET 2015
On Tue, 17 Mar 2015 14:54:12 -0700
Mehmet Erol Sanliturk <m.e.sanliturk at gmail.com> wrote:
> On Tue, Mar 17, 2015 at 2:12 PM, Mattias Gaertner <nc-gaertnma at netcologne.de
> > wrote:
>
>[...]
> > > I am using a batch or shell script file to erase all of the .ppu and .o
> > > files before starting the compilation .
> > >
> > > Selecting "Build" from Lazarus "Run" menu is starting to build Lazarus
> > > itself which is NOT possible because Lazarus is owned by the "root" .
> >
> > I'm not sure what you mean 'build Lazarus itself' and 'Lazarus is owned
> > by the "root"'.
> > Can you give more details?
> >
> Units supplied by the Lazarus , i.e. , when Lazarus is installed by the
> "root" , such as
>
> /usr/lib64/lazarus/
>
> which its owner is "root" .
Ok. So /usr/lib64/lazarus/ is readable by normal users, but not
writable. This is normal when you installed for example a deb or rpm
package.
The deb/rpm packages install ppu files compiled with a specific
Widgetset and some default compiler options.
> When "Build" is selected from the "Run" menu of Lazarus , it should NOT
> include building of units installed by the Lazarus , but units of the user
> program .
A project can effect the compiler parameters of its packages. For
example when you change the widgetset of the project to 'qt'. Or when
you add a parameter to 'Configure Build Lazarus'.
You can see what and why packages will be rebuilt in View / IDE
Internals / What needs building.
You can see why a package was rebuilt by selecting the message 'Compile
package FooBar', then right click / About / About Compile Package
FooBar.
> There is a menu item in "Tools" about building the Lazarus itself .
>
> > > Using -B option seems that it is NOT effective when there are existing
> > .ppu
> > > and .o files .
> >
> > Do you mean lazbuild -B or fpc -B?
> >
> >
> >
> In one of the fields of the Lazarus menus , ( I could not find it now ) I
> have set -B option to force the compilation in "Build" mode instead of
> "Make" mode to make it to recognize record element changes :
Probably you know, but just making sure: The -B option tells the
compiler to recompile every unit, which has a source. Even if the sources
have not changed. So basically all units of the project, but no unit of
the packages.
Lazarus automatically appends -B when the compiler
parameter changes.
> When Lazarus is starting to compile in GUI mode , it is displaying "options
> changed , ... -B ..."
> but it is not taken into consideration the record type changes mentioned
> above .
Are the altered units in the project or in a package?
> I am not using -B option in lazbuild command line statement because I am
> assuming that .lpi file contains such an option .
>
> I am not using fpc directly to compile the programs : Either by Lazarus GUI
> or lazbuild through scripts without -B option in the command line with the
> assumption that it is specified in .lpi file .
>
> Actually , in "Make" mode such changes should be detected .
>
>
> Deleting .ppu and .o files is causing a compile time more than 17 minutes
> for me instead of a shorter compilation time .
17 minutes? Even the 3+ millions lines of FPC and Lazarus normally only
takes a few minutes on a recent machine.
Mattias
More information about the Lazarus
mailing list