[Lazarus] When adding a packages it adds to uses clause
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