[Lazarus] Packages can't compile - checksum changed error
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
More information about the Lazarus