Incredibuild with 2 apps for "custom build"

165 Views Asked by At

I'm trying Incredibuild and I want to parallelise my "custom builds" (using FASM). To build the FASM OBJ I need to call 2 applications (FASM.exe and another application PECVT.exe to append debug info to the fasm .OBJ)

So, to create the FASM OBJ I need a custom build that perform the following 2 steps (notice that PECVT.exe is called after FASM.exe)

FASM.exe params 
PECVT.exe params

I have read that to make custom builds to be parallelised with Incredibuild I have to create a xml file with the following information:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<Profile FormatVersion="1">


<Tools>


<Tool Filename="fasm" AllowRemote="true" AllowPredictedBatch="true"/>
<Tool Filename="pecvt" AllowRemote="true" AllowPredictedBatch="true"/>

</Tools>


</Profile>

With the above, now FASM/PECVT are executed in parallel to assembly my .ASM files. The problem that I have is that PECVT.exe is called concurrently along with FASM.exe, so sometimes PECVT.EXE is executed before FASM.exe

If I remove "pecvt.exe" from the .xml file, then the .ASM files are assembled sequentially (not in parallel).

How can Incredibuild launch it FASM in parallel but making sure that "PECVT.EXE" is always executed after "FASM.EXE"?

Thanks!

1

There are 1 best solutions below

2
On

When you define those 2 custom tools to run in parallel - the build order may be slightly different in every build you made.

Since you wish those 2 custom tools to run in parallel but also making sure that PECVT.EXE will be always executed after FASM.exe - perhaps the best way would be to create a wrapper that will make sure that those 2 custom tools will be invoked in that manner.

Once you have this wrapper ready, This should be the only line in your profile.xml :

<Tool Filename="MyWrapper" AllowRemote="true" AllowPredictedBatch="true"/>

Hope it helped.