Distributing Custom Build Steps, Custom Build Rules and Build Events

Using the optional "XGE Interfaces" extension package, IncrediBuild can be used to distribute custom build steps, custom build rules and build events in Visual Studio projects. Any distributed step will be run using IncrediBuild's Virtual Environment technology, which ensures the process will run exactly as if it were running on the initiating machine, while protecting the remote machine's environment from being changed. This means that no special pre-configuration is necessary in order for the distribution to work - the remote machine do not need anything apart from an IncrediBuild Agent to be present in order to successfully run the task.

By default, only execution of compilation steps and MIDL tasks will be distributed, while all other events and steps in the build will run locally. To indicate that a step, build event or custom rule is distributable, special keywords must be used:

Distributing Custom Build Steps and Build Events

In order to indicate that a custom build step (project or file level) or build event (pre-build, pre-link or post-build) is distributable, enter the following line anywhere within the step's command line sequence
rem IncrediBuild_AllowRemote
This will indicate that IncrediBuild may distribute the step's execution to a remote machine.

If the distributed task creates output files, it is important that these files be specified explicitly using either the custom build step's "Output Files" field (custom build steps only), or one or more of the Output File Definition Directives.

Important! - Distributed steps missing output file specifications will not create any output files!

Distributing Custom Build Rules

In order to indicate that a custom build rule is distributable, add a custom boolean property named IncrediBuildAllowRemote to the custom rule (choose whatever default value you find appropriate). When processing a file using the custom build rule, IncrediBuild will look for this property to determine whether it can distribute execution of that file.

If the custom build rule creates output files, it is important that these files be specified explicitly using one or more of the Output File Definition Directives.

Important! - Distributed steps missing output file specifications will not create any output files!

Special Considerations

When executing a task on a remote machine, IncrediBuild transfers any files the task tries to access over the network to the remote machine. Similarly, any output files that match the output file declarations specified for that task will be transferred back to the initiating Agent's file system. Despite the fact that intelligent file caching and compression mechanisms are applied, if the distributed task typically uses a large volume of input and output files, network transfer of these files might slow down execution. The rule of thumb is that the more CPU-bound and the less IO-bound the task is, the better the chances that distributing that task will improve your build's performance.
Copyright (C) 2001-2009 Xoreax Software Ltd. All rights reserved.
The CHM file was converted to HTML by chm2web software.