Modify Settings per Build using a Configuration File

You can override some Incredibuild settings for individual builds. This is done by creating sets of Incredibuild settings inside a configuration file. You can then reference these files when running builds.

You can create and use multiple configuration files to support different use cases.

This is currently supported for the Visual Studio integration, and when running builds from the command line.

Available Settings

Parameter Description Accepted Value
/freecompletedtasks Use with big projects to improve memory performance on|off

/clangpathconvert

Used when building projects with Clang. This setting converts paths to be compatible with Clang.

If you are using special characters in paths or have any other compatibility issues, contact support@incredibuild.com.

Default=1

For other options, contact customer support.

/maxconcurrentpdbs Incredibuild limits the number of files belonging to the same project that can be built concurrently. This results in a smaller number of PDB files and a speedup in link times. More details. Integer

/maxfilesyncthreads

The max number of threads that will be used for a single file transfer between and Initiator and a Helper.

Integer

/maxparallellinktargets Max number of CPU Cores for parallel linking Integer
/forceenglishmsbuildoutput* Displays information in the Build Monitor's output tab in English. on|off
/usemsbuild* Forces the usage of a version of MSBuild (32 or 64 bit). 32|64
/avoidlocal Overrides the Avoid task execution on local machine when possible option in the Agent Settings. on|off
/maxcpus

Overrides global maximum CPUs/Cores in build setting.

Integer

/pemode*

Overrides and Agent's predictive execution setting.

0|1|2

0=disabled

1=build

2=rebuild

/buildcacheremoteserver

Defines the server to use for remote/shared Build Cache.

IP:port

/buildcachelocal

Enable Build Cache to use local cache.

on|off

*These parameters are only supported when using Incredibuild's buildconsole command to run your builds.

Creating a Configuration File

The configuration files differ slightly depending on what Incredibuild command you use to run your builds (buildconsole or ibconsole). We recommend starting with our sample file: C:\Program Files (x86)\Incredibuild\ConfigFiles\Sample.ib_config.rsp.

All config files must have the extension .rsp.

Note: This sample assumes you are using buildconsole. If you are using ibconsole, remove /usemsbuild, /pemode, /predictedexecution32bitfallback, and /ForceEnglishMSBuildOutput.

Copy
/freecompletedtasks=off
/maxconcurrentpdbs=12
/maxfilesyncthreads=
/maxparallellinktargets=1
/ForceEnglishMSBuildOutput=off
/usemsbuild=64
/avoidlocal=off
/maxcpus=0
/pemode=2
/buildcacheremoteserver=127.0.0.1:50222  
/buildcachelocal=on

All parameters are included in the sample file for your convenience, but you do not need to include every parameter in the config file. Edit the file as desired based on the table above.

Using the Configuration File During a Build

The configuration files can be used in one of two ways when running a build:

  • Automatic: If you place the config file in the same location as the solution file, with the same name as the solution, it is automatically used when you run any projects in that solution.

  • Command Line: If you specify the config file directly in the build command, that file will be used (this is not supported in VS IDE).

To specify a config file in the build command, add the flag @<relative or full path>\yourconfigfile.rsp. For example, @..\configx64.rsp

Example Use Cases

Using different config files for each solution

If you have a unique config file for each solution, name the config file the same name as the solution and place it in the same folder. It will be used whenever any project in that solution is run automatically.

Using multiple config files for a single solution

If you are using multiple config files for the same solution, you must specify the config file in the build command every time.

This can useful when using the same solution for multiple targets (e.g. helloworld_x86.rsp, helloworld_x64.rsp)