Profiles provide a way to alter the compiler settings.
Scarb has 2 built-in profiles:
release. The profile defaults to
dev if a profile is not specified on the command-line. In addition to the built-in profiles, custom user-defined profiles can also be specified.
Profile settings can be changed in Scarb.toml with the
[profile] table. Profile settings defined in dependencies will be ignored.
Currently, profiles define properties that affect the compiler settings, in a
[cairo] table (analogue to the cairo section of the manifest definition) and custom tool metadata (analogue to the tool section of the manifest definition).
Overriding built-in profile properties
Each of the built-in profiles come with predefined default properties.
The properties of a built-in profile can be overridden by specifying a new property value in a custom profile.
For example, the
dev profile has the
sierra-replace-ids property set to
true by default. This can be overridden by specifying the same property in a custom profile:
# Replace all names in generated Sierra code with dummy counterparts.
sierra-replace-ids = true
Defining custom profiles
Custom profiles can be defined in Scarb.toml with the
[profile] table. Each profile is defined by a name and a set of properties.
For example, the following defines a custom profile named
A custom profile can be used with
--profile argument. For instance:
scarb --profile my-profile build
Each custom profile inherits the properties of one of the built-in profiles. The built-in profile to inherit from is specified with the
inherits = "release"
If not specified, the
dev profile is used by default. A custom profile can override properties of the inherited profile, analogous to how built-in profile properties can be overridden.