we have occasionally observed inexplicable compile errors in our builds.
Finally we managed to deduce that these are caused by building one delphi project twice with different settings in parallel.
Rougly imagine something like this:
Async Action group
- Compile Project1.dpr (32 bit)
- Compile Project1.dpr (64 bit)
Our current solution is to make sure these handful of projects are only ever compiled sequentially.
I am wondering though if there is something built into FinalBuilder that we can use to avoid this error without explicitly singling out the specific projects.
What version of Delphi are you using? I know that with older versions of delphi (pre berlin I think) the compiler was notorious for opening files with share deny read, so no other process could open them at the same time.
There isn’t anything in FinalBuilder that can overcome this I’m afraid.
We’ve been actually using Delphi Berlin after upgrading from XE a while ago but that didn’t help with this.
We’ll just keep handling those projects separately then.
Thanks for the reply.
Our current working solution is to dynamically copy .dpr(with program/library name correction), .ridl(for TLB projects), .dproj(correcting .ridl name) with new name and then you can run it in parallel. The reson is some compiler temporary files named from .dpr name so we have confllicting resource id. We can build 32 and 64 bit versions in parallel but 64-bit compilation is about 3 times slower.