[Lazarus] Packages can't compile - checksum changed error

Mattias Gaertner nc-gaertnma at netcologne.de
Thu Jun 25 13:49:51 CEST 2015


On Thu, 25 Jun 2015 12:26:39 +0100
Graeme Geldenhuys <mailinglists at geldenhuys.co.uk> wrote:

>[...]
> > and that the second
> > package unit paths do not include any directories of the first package.
> 
> This is a problem.
> 
>  1) All units in tiOPF share a common tiDefines.inc include file that
>     controls some behaviour of the framework and defines new compiler
>     defines used throughout the framework. This include file lives in
>     the <tiopf>/Core/ directory. So the second package needs that
>     path to compile the tiOPF+LCL units.

Sharing include files is ok.
Don't share unit paths.

 
>  2) The second package uses a unit tiDataset.pas (VCL and LCL specific)
>     that is located in the <tiopf>/Options/ directory. So Lazarus
>     automatically added the <tiopf>/Options/ directory to the unit
>     search path otherwise it couldn't find that unit.
>
> Any suggestions?
> 
> The Options directory contains optional units not required by the core
> framework, but often used. It contains things like alternative
> persistence layer for various database backends, alternative ID
> generators etc. The first package (eg: alternative persistence layers)
> compiles these units based on the LINK_xxx compiler defines found in the
> Other compiler options. So the first package needs the Options unit
> search path setting to know where to find these if they are enabled.

Put often used units in a package. Share the ppu files, not the sources.

 
> >> -Fu/data/devel/lazarus/packager/units/x86_64-freebsd
> >> -Fu/data/devel/Wisa/fpcpackages/tiopf/Compilers/FPC/lib/x86_64-freebsd
> >> -Fu/data/devel/lazarus/components/lazutils/lib/x86_64-freebsd
> >> -Fu/data/devel/lazarus/lcl/units/x86_64-freebsd
> >> -Fu/data/devel/lazarus/lcl/units/x86_64-freebsd/gtk2
> >> -Fu/data/devel/Wisa/fpcpackages/tiopf/Compilers/FPC/
> > 
> > And that one.
> 
> I don't specify them, Lazarus must be adding them somewhere. They don't
> appear in the "Compiler Options -> Paths" dialog.

Then either it is a package output directory or the project added them
via "Additions and Overrides".
Click on Compiler Options / Show Options / Inherited parameters to find
out.

Mattias




More information about the Lazarus mailing list