[quote author=Rave link=topic=23528.msg140508#msg140508 date=1391611323]
Compiling lazarus.pp
PPU Loading C:\Users\Darkhog\indy-10.2.0.3\lazarus\IdStreamVCL.ppu
PPU Source: IdStreamVCL.pas not found
PPU Source: C:\Users\Darkhog\indy-10.2.0.3\lazarus\IdCompilerDefines.inc time 2007/10/26 14:54:16
Recompiling IdStreamVCL, checksum changed for IdGlobal
IdStreamVCL.pas(71,12) Fatal: Can not find IdStreamVCL used by IdStream, ppu=C:\Users\Darkhog\indy-10.2.0.3\lazarus\IdStreamVCL.ppu, package indylaz
[/quote]
Reminds me of a similar issue I once add.
It may work like this (but not tested)
- Open the package
- compile it
- compile it again / no cleaning / no build all / just plain compile
- Build Lazarus (but do NOT select any "clean" option)
What happens is
In the package is a circular ref, and most likely some "inline" declared function.
IdStreamVCL uses IDGlobal
IdGlobal has
- an inlined function
- IdStreamVCL in the uses in IMPLEMENTATION
when IdStreamVCL is compiled (called from that uses), the function is only declared, but its code not yet available. So it is NOT inlined
Then IDGlobal finishes. And that changes its checksum, when it does the code for the inlineable function.
Now when the IDE compiles, only ppu are in the path. So recompilation is not possible.
But it detects, that IdGlobal updated itself, and refuses the ppu of IdStreamVCL that was does before.
It is a limitation in the design of how compiling works in fpc.