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-2008 Xoreax Software Ltd. All rights
reserved.