Visual Studio Builds
General
The General page contains settings that affect VS builds initiated by this Agent:
Multiple CPU/Core Utilization
Allow linking steps to run in parallel locally:
This option determines if linking steps for different projects will be allowed to run in parallel on the Initiator machine. Select this option only if your system's memory can handle multiple link steps.
Max. number of CPU/Cores used for parallel linking:
When the Allow linking steps to run in parallel locally option is enabled, enter the maximum number of CPUs or cores which will be able to run link steps in parallel at any given point.
Projects
Build all projects regardless of errors
When this option is selected, Incredibuild continues to build remaining configurations in builds, even if a dependent configuration failed with a build error. This option can be overridden per project, by selecting a different value when building that project using the Batch Build dialog box. The new option remains in effect for subsequent builds.
Advanced
The Advanced page contains advanced settings that affect Visual Studio builds initiated by this Agent:
Use Environment variables instead of IDE paths
When this option is selected, Incredibuild uses the local environment variables INCLUDE, LIB, and PATH instead of the variables set in the IDE.
Predictive Execution (Visual Studio 2010 and higher)
Enhance throughput using out-of-order tasks spawning
Enabling this option (VS2010 and higher) may highly improve build performance by instructing Incredibuild to execute Visual Studio tasks (compilation, link, RC etc.) in an optimized order and not necessarily in the same order as Visual Studio would have executed them.
Incredibuild will try increasing Visual Studio’s build tasks throughput thus potentially increasing the build performance and CPU utilization.Consider the following scenario: project B depends on project A. Normally, both Visual Studio and Incredibuild will first finish compiling and linking the entire A project before proceeding with project B. With “predictive execution” enabled, Incredibuild may conclude that some compilation tasks from project B can be executed simultaneously with tasks from project A.
IMPORTANT:
The predictive execution feature is currently not supported and should be disabled, for the following platforms / compilers: WiiU, Café, Nintendo 3DS and CUDAcompiler.Do not enable the “predictive execution” feature on a machine using any of these tools.
PDB File Allocation
Limit Concurrent PDB file instances to X
When this option is selected, 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. Selecting this option also limits the potential for parallelization in builds, meaning that the number of compilations that can run in parallel for a specific project cannot be more than the number selected here. For example, if you have two projects that can run in parallel, and you select in this option to limit concurrent PDB file instances to 8. Assuming each project contains 100 compilations, sixteen compilations will run in parallel – eight compilations from project A and eight compilations from project B.
It is recommended to experiment with different values before using this option. Generally speaking, this feature is more suitable for solutions containing a large number of projects, as having more projects leaves room for better parallelization.
Force 64-bit toolset
When this option is selected, Incredibuild will run builds under Visual Studio using the native 64-bit toolset of Visual Studio, instead of the default 32-bit toolset. This option will only affect builds running under VS 2013 and VS 2015.
Choosing this option can add some limited performance along with solving various Linker memory related problems such as LNK1318 as the Linker will be able to use more memory.
Browse Information
The Browse Information page controls how this Agent creates project browse information.
Browse Information Creation
MSVC's browse information feature enables source code navigation to symbol definitions and declarations, automatic completion of function parameters, and other useful features. When in use, the compiler generates a file with the .SBR extension for each source file. At the end of each build, browse information is generated by running the BSCMake tool that "links" the .SBR files into a single file (with the .BSC extension) used by MSVC for browse information. Generating browse information can slow down builds; therefore, it is not always used.
Incredibuild provides the following behavior options in the context of browse information creation:
Always generate .SBR files according to project settings
When selected, this option generates .SBR files (used to build browse information) only if the project settings for the configuration being built specify "Generate browse info" in the C/C++ page (VC6.0) or "Enable browse information" in the C/C++->Browse information page (VC.NET). Deselecting this option causes Incredibuild to determine whether to generate .SBR files or not to according to the "Generate .BSC file" setting. This may result in interoperability problems when using both Incredibuild and MSVC to build a project that uses precompiled headers.
Generate .BSC (Source Browser database) file:
This option controls whether Incredibuild will run the BSCMake step, which builds browse information. The following options are available:
- According to 'Generate browse info' project setting – THe C/C++ page in MSVC's Project Settings dialog defines whether .SBR files are generated when compiling. This setting causes Incredibuild to create browse information only if the 'Generate browse info' Project Settings option is selected. Note that the 'Build browse info file' setting (found under the "Browse Info" page in the project settings dialog) does not affect Incredibuild's behavior in any way.
- Never – Do not generate browse information in any case. This is the default option.
- Always – Always generate browse information.
- Only for configurations containing these words – Allows specification of a list of strings for Incredibuild to look for in the configuration name. If one or more is found, browse information will be generated for that configuration. Multiple strings can be entered and separated by a comma or semicolon character. If, for example, the string "Debug" is used in this option, Incredibuild will generate browse information for all configurations containing the word "Debug". Note that the keyword search is not case sensitive.
Note: When the "Always generate .SBR files according to project settings" option is selected, any conflicts between the "Generate .BSC file" option and the project settings will be determined according to the project settings