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 not supported when using Incredibuild's IBConsole 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.
/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)