Defines global FASTBuild settings.
Settings
{
// General
.Environment // (optional) Array of environment variables to use
// Caching
.CachePath // (optional) Path to cache location
.CachePathMountPoint // (optional) Require that path be a mount point (OSX & Linux only)
.CachePluginDLL // (optional) User plugin to manage cache back-end
.CachePluginDLLConfig // (optional) USer configuration string to pass to CachePluginDLL
// Distribution
.Workers // (optional) Fixed list of workers if not using automatic discovery
.WorkerConnectionLimit // (optional) Limit number of connected workers (default: 15)
.DistributableJobMemoryLimitMiB // (optional) Limit memory used locally to prep jobs (default: 2048)
// Concurrency Groups
.ConcurrencyGroups // (optional) Specify additional concurrency constraints
}
.ConcurrencyGroup =
[
.ConcurrencyGroupName // Unique name of the Concurrency Group
.ConcurrencyLimit // (optional) Hard limit for jobs
.ConcurrencyPerJobMiB // (optional) Required system MiB per-job
]
.ConcurrencyGroupName - String - (Required)
Concurrency Groups are defined and referenced by name. Each group must have a unique
name.
Example:
.Group1 =
[
.ConcurrencyGroupName = 'link'
.ConcurrencyLimit - Integer - (Optional)
Concurrency Groups can specify a hard limit of instances to run concurrently.
If .ConcurrencyPerJobMiB is also set, the lower of the two
limits will be respected.
Example:
.Group1 =
[
.ConcurrencyLimit = 4 // At most 4 jobs concurrently
.ConcurrencyPerJobMiB - Integer - (Optional)
Concurrency Groups can specify a per-instance memory requirement in MiB.
A limit of instances to run concurrently will be derived by dividing system
physical addressable memory by this value. At least one job will always be
allowed to run. If .ConcurrencyLimit is also specified, the lower of
the two limits will be respected.
The physical addressable memory is typically slightly less than the physcially
installed memory due to OS or hardware reservations/limitations.
The physcial addressable memory of the system is queried once at startup.
Example:
.Group1 =
[
.ConcurrencyPerJobMiB = 2048 // Jobs require 2 GiB each