[Lazarus] LCL recompilation

Mattias Gaertner nc-gaertnma at netcologne.de
Thu Feb 3 14:52:59 CET 2011


 


Hans-Peter Diettrich <DrDiettrich1 at aol.com> hat am 3. Februar 2011 um 14:16
geschrieben:

> Mattias Gaertner schrieb:
>
> > The LCL is only recompiled if needed, that means:
> > If the project defines another target (widget/os/cpu) and the LCL was
> > not yet compiled for that target, the LCL will be recompiled.
> > Or if you change the compiler, e.g. you switch from 2.4.2 to 2.5.1.
> > Or if you change the source of the LCL.
> > Or if you change the IDEBuildOptions.
>
> How can I find out the reason for the rebuild, in detail when different
> build options are involved? 
Start the ide with --debug-log=log.txt
It logs the exact reason.
 

> When the former procedure missed to find applicable compiled units, it simply
> rejected to proceed, and I could
> rebuild the LCL manually with known settings. 
?
 

> Nowadays I'm somewhat lost, and most rebuilds don't complete so that I have to
> restart from
> "make clean all" :-( 
If lazarus does not compile please create a bug report with the build log.
 
 

>
> Most recompilations stop with "file not found" errors, with different
> files. Since the files exist, and are found by the IDE, I assume that
> search path options are involved. 
In the last week some people had trouble, because they didn't make clean or had
mixed an older lazarus with a newer lazarus or they used an outdated mirror.
An older IDE can not compile the current. You must use make. If you use the
snapshot, make sure to clean up the old directory.
 
 

>
> > If you spot a recompile without need please report the bug.
>
> What information should I include, so that a bug report makes sense? 
The --debug-log and the way how you installed lazarus. 
 
 
 

>[...]
> > The lazarus.lpi has disabled compile in its compiler options. You can
> > compile via the Tools / Build Lazarus.
>
> How do I build a new IDE, without overwriting the old (working) one? 
First of all: Backup the working one. Backups are always a good idea.
You can pass an -o option if you want.
 
 


>[...]
> > The LCL is compiled separately from the project and uses its own
> > compiler settings. Therefore the debug and optimization settings of the
> > project are not applied to the LCL.
>
> Hmm, then I wonder why after "make clean all" the LCL is recompiled
> later. 
Maybe you defined some options in the "Configure build lazarus" dialog?
These are the IDEBuildOptions. The debug-log will tell.
 

> I already checked the environment options, to match the "make" > options, but
> I'm not really sure. It would be nice to have some
> indication, which config files etc. are used by "make", so that the IDE
> can be configured to use the same settings. 
For the LCL "make" uses only your fpc.cfg. This is also used by the IDE. But the
IDE can add IDEBuildOptions and project options.
 
 

> 
> >> Code navigation (goto declaration...) and stepping through LCL
> >> code, down to the widgetset level, seems to require a debug version of
> >> the LCL.
> >
> > Code navigation ignores all debug settings.
>
> But what's missing then, when I cannot go to lower level source code in
> the IDE? Currently I cannot follow the call chain (go to declaration)
> into the win32 (target) specific source files. 
Can you be more specific? What find declaration does not work? 
 
Mattias
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20110203/12209cac/attachment-0003.html>


More information about the Lazarus mailing list