Sign in Join

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

Mailing lists / lazarus / 2011-01

LCL now automatically compiles if needed

14 messages · 5 people ·

Reply by email Subscribe to this list Your subscription

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

Mattias Gaertner

Hi all,

The package LCL is now a normal package. That means, the IDE will automatically compile it if needed.

Therefore it was removed from the "Configure build Lazarus" dialog. Of course the options of those dialog are still applied, because the package uses the macro $(IDEBuildOptions).

The selection of the LCL widget type is now a normal macro and can be set via the project macros (Project / Project Options / Compiler options / Build modes / Set macro values).

Formerly the special linker options needed by the LCL were hard-wired into the IDE, which added the linker options to all projects. These linker options are now part of the LCL package and only added to those projects using the LCL.

The backend independent part of the LCL was split into a sub package named LCLBase, for instance the units Forms and Controls. The LCL now only contains the glue code to the third party gui libraries (often called widget sets). It uses the new conditionals. The IDE function to create Makefiles for packages does not support conditionals, so the Makefiles are still hand crafted.

The fpgui backend supports two backends itself: gdi and x11. This is set via the new macro FPGUIPlatform. The macro uses defaults if not set by the project. When eventually fpgui supports framebuffer, opengl or whatever this macro will give you the choice for the LCL/fpgui.

Mattias

Martin
to Mattias Gaertner
Mattias Gaertner wrote
Hi all, The package LCL is now a normal package. That means, the IDE will automatically compile it if needed.

And what are the steps required to update via SVN? For people who rebuild via the LCL tools menu ?

registerlcl.pas(8,3) Fatal: Can't find unit LazarusPackageIntf used by
RegisterLCL
Mattias Gaertner
to Martin
Show quoted text 11 lines
On 27/01/2011 13:57, Mattias Gaertner wrote: > Hi all, > > The package LCL is now a normal package. That means, the IDE will > automatically compile it if needed. And what are the steps required to update via SVN? For people who rebuild via the LCL tools menu ? registerlcl.pas(8,3) Fatal: Can't find unit LazarusPackageIntf used by RegisterLCL

The fcl package is not yet a normal package and not yet automatically compiled. You have to compile it via the IDE dialog or make.

As always:

svn up
make clean all

Mattias

Martin
to Mattias Gaertner
Mattias Gaertner wrote 15 lines
On Thu, 27 Jan 2011 14:39:55 +0000 Martin wrote: > On 27/01/2011 13:57, Mattias Gaertner wrote: >> Hi all, >> >> The package LCL is now a normal package. That means, the IDE will >> automatically compile it if needed. > And what are the steps required to update via SVN? For people who > rebuild via the LCL tools menu ? > > registerlcl.pas(8,3) Fatal: Can't find unit LazarusPackageIntf used by > RegisterLCL The fcl package is not yet a normal package and not yet automatically compiled. You have to compile it via the IDE dialog or make.

I've been trying the dialog => I selected to clean all, and rebuild all. And that's the error I got

As always: svn up make clean all

I try to avoid calling make directly => I am a windows user

Martin
to Martin: I've been trying the dialog => I selected to clean all, and rebuild all. And that's the…
Martin wrote 9 lines
>> rebuild via the LCL tools menu ? >> >> registerlcl.pas(8,3) Fatal: Can't find unit LazarusPackageIntf used by >> RegisterLCL > The fcl package is not yet a normal package and not yet automatically > compiled. You have to compile it via the IDE dialog or make. And what are the steps required to update via SVN? For people who I've been trying the dialog => I selected to clean all, and rebuild all. And that's the error I got

Which package does "LazarusPackageIntf" belong to?

Normally those issues are solvable, by adding the new package, to the installed package list?

But I can't even find a package that contains "LazarusPackageIntf". So i can not get this unit to be compiled.

Martin

Mattias Gaertner
to Martin: I've been trying the dialog => I selected to clean all, and rebuild all. And that's the…
Show quoted text 18 lines
On 27/01/2011 14:57, Mattias Gaertner wrote: > On Thu, 27 Jan 2011 14:39:55 +0000 > Martin wrote: > >> On 27/01/2011 13:57, Mattias Gaertner wrote: >>> Hi all, >>> >>> The package LCL is now a normal package. That means, the IDE will >>> automatically compile it if needed. >> And what are the steps required to update via SVN? For people who >> rebuild via the LCL tools menu ? >> >> registerlcl.pas(8,3) Fatal: Can't find unit LazarusPackageIntf used by >> RegisterLCL > The fcl package is not yet a normal package and not yet automatically > compiled. You have to compile it via the IDE dialog or make. I've been trying the dialog => I selected to clean all, and rebuild all. And that's the error I got

That's because the old dialog compiles the LCL before the FCL (package registration). This was changed with the redesign of this dialog in 0.9.29. Technically the reordering was ok, because the LCL package registration was in the IDE. Now the LCL package registration is in the LCL as any other package. I changed the order in one of my commits some hours ago, but a lazarus 0.9.29 - 0.9.31 has the wrong order. For the 0.9.30 we should change the order, so it can compile a 0.9.31.

Show quoted text 6 lines
> As always: > > svn up > make clean all I try to avoid calling make directly => I am a windows user

Then compile first the package registration, then the LCL and then the IDE.

Mattias

Martin
to Mattias Gaertner
Mattias Gaertner wrote 8 lines
> I've been trying the dialog => I selected to clean all, and rebuild all. > And that's the error I got That's because the old dialog compiles the LCL before the FCL (package registration). This was changed with the redesign of this dialog in 0.9.29. Technically the reordering was ok, because the LCL package registration was in the IDE. Now the LCL package registration is in the LCL as any other package. I changed the order in one of my commits some hours ago, but a lazarus 0.9.29 - 0.9.31 has the wrong order.

Thanks that was the hint I needed.
I understand the need for those ordering changes. In fact I caused them myself before....

Ok, that works,

But...
Now lcl is vesion 0.9.31
Yet some packages require an LCL v1.0:
- jcfidelazarus
- FPCUnitTestRunner

Not sure which others. Those were all from the list of which I have installed

Martin

Mattias Gaertner
to Martin: Thanks that was the hint I needed. I understand the need for those ordering changes. In…
Show quoted text 23 lines
On 27/01/2011 15:28, Mattias Gaertner wrote: >> I've been trying the dialog => I selected to clean all, and rebuild all. >> And that's the error I got > That's because the old dialog compiles the LCL before the FCL (package > registration). This was changed with the redesign of this dialog in > 0.9.29. Technically the reordering was ok, because the LCL package > registration was in the IDE. Now the LCL package registration is in the > LCL as any other package. I changed the order in one of my commits some > hours ago, but a lazarus 0.9.29 - 0.9.31 has the wrong order. Thanks that was the hint I needed. I understand the need for those ordering changes. In fact I caused them myself before.... Ok, that works, But... Now lcl is vesion 0.9.31 Yet some packages require an LCL v1.0: - jcfidelazarus - FPCUnitTestRunner Not sure which others. Those were all from the list of which I have installed

The former LCL package had the version 1.0 and the IDE automatically used that as minimum version when a dependency was added. I guess the only compatible way is to increase the LCL version to 1.0.

Mattias

Vincent Snijders
to Mattias Gaertner

2011/1/27 Mattias Gaertner :

I guess the only compatible way is to increase the LCL version to 1.0. From a PR point of view, that would be a good decision: get the next

Lazarus release, now with LCL 1.0 ;-)

Vincent

Martin
to Vincent Snijders
Vincent Snijders wrote
2011/1/27 Mattias Gaertner: > I guess the only compatible way is to increase the LCL version to 1.0. > From a PR point of view, that would be a good decision: get the next Lazarus release, now with LCL 1.0 ;-)

Does our advertising budget allow for a television spot?

Mattias Gaertner
to Michael Schnell: With this I can build Lazarus and the LCL including the (default) gtk2 Widget Type. But…
Show quoted text 9 lines
On 01/27/2011 03:57 PM, Mattias Gaertner wrote: > > make clean all > With this I can build Lazarus and the LCL including the (default) gtk2 Widget Type. But the fpGUI Widget Type is not build, so when selecting it I get an error when compiling.

Yes, several.
I fixed the include file conflict and the dummy units.

Building the LCL with fpGUI using the Tools menu does not work any more. So how to built the fpGUI Widget Type in the LCL ?

Update svn.

Mattias