Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2011-05

LCL not in build profiles ?

9 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Unknown author

Hi,

Is there a reason why the LCL is no longer part of the items in the build profiles ?

I'd like to have a build profile where I tell the IDE to recompile the FCL/LCLBase/LCL packages as part of the build process.

As it is now, I must manually recompile clean FCL/LCLBase/LCL before I can rebuild lazarus. (after e.g. the FCL or RTL has changed)

Michael.

Reply by email

Mattias Gaertner
to Unknown author
Hi, Is there a reason why the LCL is no longer part of the items in the build profiles ?

The LCL is now a normal package. No need for a special dialog.

Show quoted text 5 lines
I'd like to have a build profile where I tell the IDE to recompile the FCL/LCLBase/LCL packages as part of the build process. As it is now, I must manually recompile clean FCL/LCLBase/LCL before I can rebuild lazarus. (after e.g. the FCL or RTL has changed)

Yes, that is unpleasant.

The IDE does not check on every compile the near 1000 units of FPC, because that would be very slow and these units change seldom. I will implement a similar caching as the compiler uses. Hopefully this is fast enough. Till then you can use the workarounds:

a) Open package FCL and click compile. Because almost all packages depend on that package the others will be recompiled automatically when needed.

b) Create an external tool (under Tools / Options) to delete the file $(LazarusDir)/packager/units/$(TargetCPU)-$(TargetOS)/FCL.compiled This will invalidate the package FCL. Same effect as above, but you can define a shortcut.

Mattias

Reply by email

Martin
to Unknown author: Is there a reason why the LCL is no longer part of the items in the build profiles ? I'd…
Show quoted text 7 lines
I'd like to have a build profile where I tell the IDE to recompile the FCL/LCLBase/LCL packages as part of the build process. As it is now, I must manually recompile clean FCL/LCLBase/LCL before I can rebuild lazarus. (after e.g. the FCL or RTL has changed)

I just check the "clean all" chack box in the build dialog. That still seems to rebuild everything.

Reply by email

Michael Van Canneyt
to Mattias Gaertner: On Mon, 23 May 2011 16:05:24 +0200 (CEST) The LCL is now a normal package. No need for a…
Mattias Gaertner wrote 21 lines
On Mon, 23 May 2011 16:05:24 +0200 (CEST) wrote: > Hi, > > Is there a reason why the LCL is no longer part of the items in the build > profiles ? The LCL is now a normal package. No need for a special dialog. > I'd like to have a build profile where I tell the IDE to recompile the > FCL/LCLBase/LCL packages as part of the build process. > > As it is now, I must manually recompile clean FCL/LCLBase/LCL before I can > rebuild lazarus. (after e.g. the FCL or RTL has changed) Yes, that is unpleasant. The IDE does not check on every compile the near 1000 units of FPC, because that would be very slow and these units change seldom.

Well, with me they do (for obvious reasons ;) )

Show quoted text 6 lines
I will implement a similar caching as the compiler uses. Hopefully this is fast enough. Till then you can use the workarounds: a) Open package FCL and click compile. Because almost all packages depend on that package the others will be recompiled automatically when needed.

Well, this is what I do now. But all this does not explain why you simply don't provide the option 'rebuild all packages' in the 'build' dialog of the IDE. It's just a checkbox, after all.

I don't like to depend exclusively on 'automated' mechanisms. They must be there, I won't argue about that, but I always want a manual override. This manual override used to be there, now it is gone. From my point of view, this is a step backwards.

Well, no great matter.

Michael.

Reply by email

Michael Van Canneyt
to Martin: I just check the "clean all" chack box in the build dialog. That still seems to rebuild…
Martin wrote 10 lines
On 23/05/2011 15:05, wrote: > > I'd like to have a build profile where I tell the IDE to recompile the > FCL/LCLBase/LCL packages as part of the build process. > > As it is now, I must manually recompile clean FCL/LCLBase/LCL before I can > rebuild lazarus. (after e.g. the FCL or RTL has changed) I just check the "clean all" chack box in the build dialog. That still seems to rebuild everything.

Well, I tried that, it didn't help here. I kept getting an error in the FCL package.

Michael.

Reply by email

Mattias Gaertner
to Michael Van Canneyt: Well, with me they do (for obvious reasons ;) ) Well, this is what I do now. But all this…
Show quoted text 8 lines
[...] > a) Open package FCL and click compile. Because almost all packages > depend on that package the others will be recompiled automatically when > needed. Well, this is what I do now. But all this does not explain why you simply don't provide the option 'rebuild all packages' in the 'build' dialog of the IDE. It's just a checkbox, after all.

The checkbox exists and is called 'clean all'.

IMO the project needs a "Rebuild all ..." menu item.

I don't like to depend exclusively on 'automated' mechanisms. They must be there, I won't argue about that, but I always want a manual override. This manual override used to be there, now it is gone. From my point of view, this is a step backwards.

There are manual overrides. The 'clean all' still exists. You got build modes and automatic compile. The only thing that is gone is to define profiles to build LCL, CodeTools, IDEIntf. These settings confused many users. Since they are gone, these problems are gone.

When project groups are implemented parts of the "configure build lazarus" dialog will become obsolete, maybe the whole dialog.

Mattias

Reply by email

Mattias Gaertner
to Michael Van Canneyt: Well, I tried that, it didn't help here. I kept getting an error in the FCL package.…
Show quoted text 16 lines
On Mon, 23 May 2011, Martin wrote: > On 23/05/2011 15:05, wrote: >> >> I'd like to have a build profile where I tell the IDE to recompile the >> FCL/LCLBase/LCL packages as part of the build process. >> >> As it is now, I must manually recompile clean FCL/LCLBase/LCL before I can >> rebuild lazarus. (after e.g. the FCL or RTL has changed) > > I just check the "clean all" chack box in the build dialog. That still seems > to rebuild everything. Well, I tried that, it didn't help here. I kept getting an error in the FCL package.

Strange. It invokes "make cleanlaz". Here it removes all files in packager/units/x86_64-linux/.

The IDE writes to stdout, what it does. Can you check that it does call "make cleanlaz"?
Does make cleanlaz clean up the directory?

Mattias

Reply by email

Mattias Gaertner
to Mattias Gaertner: On Mon, 23 May 2011 16:05:24 +0200 (CEST) The LCL is now a normal package. No need for a…
Show quoted text 23 lines
On Mon, 23 May 2011 16:05:24 +0200 (CEST) wrote: > Hi, > > Is there a reason why the LCL is no longer part of the items in the build > profiles ? The LCL is now a normal package. No need for a special dialog. > I'd like to have a build profile where I tell the IDE to recompile the > FCL/LCLBase/LCL packages as part of the build process. > > As it is now, I must manually recompile clean FCL/LCLBase/LCL before I can > rebuild lazarus. (after e.g. the FCL or RTL has changed) Yes, that is unpleasant. The IDE does not check on every compile the near 1000 units of FPC, because that would be very slow and these units change seldom. I will implement a similar caching as the compiler uses. Hopefully this is fast enough.

The IDE now checks all fpc units. Please test.

Mattias

Reply by email

Joost van der Sluis
to Unknown author: Is there a reason why the LCL is no longer part of the items in the build profiles ? I'd…
Show quoted text 10 lines
Hi, Is there a reason why the LCL is no longer part of the items in the build profiles ? I'd like to have a build profile where I tell the IDE to recompile the FCL/LCLBase/LCL packages as part of the build process. As it is now, I must manually recompile clean FCL/LCLBase/LCL before I can rebuild lazarus. (after e.g. the FCL or RTL has changed)

When you use fppkg/fpmake properly to compile your changed rtl/fcl, the LCL will be compiled accordingly. ;)

But compiling the rtl with fppkg is tricky. I don't think it works. Fcl should work fine, though.

Joost

Reply by email