[Lazarus] When adding a packages it adds to uses clause

Graeme Geldenhuys graemeg.lists at gmail.com
Tue Jul 8 00:09:46 CEST 2008

2008/7/7 Vincent Snijders <vsnijders at quicknet.nl>:
> To support package, which only do registration, like for example the
> jpeg reader (not used atm). It registers its reader in the intialization
> section of one the units in the package, but is not used anywhere in the
> application further on.

Surely there must be a smarter way for Lazarus to know when to include
or not include the package unit into a project. I just tested  Philip
Hess's theory and he is 100% correct.

I compiled a simply application using fpgui_toolkit.lpk package (no
smart linking) and with 'fpgui_package'  in uses clause. A 4.3Mb
executable was created.  I enabled smart linking and the file shrunk
to 3.5Mb.  I then removed the 'fpgui_package' reference in the uses
clause and it shrunk further to 2.8Mb.  That's a HUGE difference
compared to the previous tries.

Oh, and I ran 'strip' on each executable. The first 4.3Mb file went
down to 2.9Mb.  The last 2.8Mb file went down to 590Kb.

As far as I know, a Lazarus Package contains a flag or something to
say it's got a Register() function. In that case include the package
unit in the uses clause. If the packages doesn't contain a Register()
function, exclude it from the uses clause!

When deploying apps over the internet every byte counts!  No need to
follow Microsoft's idea of creating every application with bucket
loads of bloat.

 - Graeme -

fpGUI - a cross-platform Free Pascal GUI toolkit

More information about the Lazarus mailing list