Using XML Interfaces

In order to use XML Interfaces, you need an XML profile. See Creating a Profile XML File, to learn more about this file. Once an XML file describing the tasks to be distributed has been created, the distributed build is initiated using the IBConsole.exe application, with the XML file as input.  For a comprehensive overview of the IBConsole.exe command line options, see this section.

The XML Interface is a general-purpose distribution interface that uses an input XML file describing a set of command-line tasks to be executed through the Incredibuild engine, along with their input files, output files, and dependencies. This interface is used for complex processes defined in XML. With it you can construct the master process of the software to be accelerated. The XML acts as script that manages the execution of the processes, instructing Incredibuild how to run the processes.

IBConsole.exe initiates the process, while using the XML file as input, which describes the distribution of the tasks. As with all Incredibuild interfaces, all remotely performed tasks fully emulate the initiating machine's environment and file system, eliminating the need to copy files or install applications on remote machines.

The XML syntax for each Incredibuild Project describes the Project’s Tasks and the dependencies between them.

As in the other interfaces, the execution of scripts is managed via the IBConsole command. For example:

IBConsole.exe myjob.xml

The benefit of this interface is that Incredibuild manages the job execution, giving you complete control of the execution flow (tasks and dependencies).

Highlights:

  • Completely generic and autonomous

  • Supports complex task and file dependencies

  • Supports full rebuild, incremental build, and clean operations

  • Supports file searches and response file loading

  • Supports Environment Variables read-write access

Use this Interface if:

  1. You wish to replace your current execution script/build tool with Incredibuild's XML-based build system in order to distribute the process.

  2. You would like to distribute execution of a sequentially running process run from a custom application, and are able to describe the set of commands to be distributed in XML format.

  3. You would like to distribute execution of an identical command line run on a group of files described through a wildcard expression (e.g. run command line "analyze.exe /out:./TargetDir " on all files matching the expression "MyFolder\*.cpp").