Configuration
The CLI can be configured on a per project basis in the Cargo.toml under the metadata section.
[package.metadata.bevy_cli]
The CLI supports two targets:
- native:
[package.metadata.bevy_cli.native] - web:
[package.metadata.bevy_cli.web]
For both these targets a release and dev profile exists that will automatically be chosen by the CLI:
| Profile Name | Configuration Section |
|---|---|
release | [package.metadata.bevy_cli.native.release] |
dev | [package.metadata.bevy_cli.native.dev] |
web-release | [package.metadata.bevy_cli.web.release] |
web | [package.metadata.bevy_cli.web.dev] |
Note
The Web profiles inherits from their native counterpart
Configuration Merging
Configuration is merged in the following order (from general to specific):
- Base config:
[package.metadata.bevy_cli] - Profile config
[package.metadata.bevy_cli.{dev|release)] - Target config:
[package.metadata.bevy_cli.{native|web}] - Target + Profile config:
[package.metadata.bevy_cli.{native|web}.{dev|release}]
Example
The following Cargo.toml
[package.metadata.bevy_cli]
default-features = true
[package.metadata.bevy_cli.web]
rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
[package.metadata.bevy_cli.web.release]
wasm-opt = true
[package.metadata.bevy_cli.release]
default-features = false
When building for web in release mode, the final merged configuration will be:
# merged from `[package.metadata.bevy_cli.web]`
rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
# merged from `[package.metadata.bevy_cli.web.release]`
wasm-opt = true
# merged from `[package.metadata.bevy_cli.release]`
default-features = false
When building for native dev, the final merged configuration will be:
# merged from [package.metadata.bevy_cli] (default-features are enabled by default if not explicitly turned off)
default-features = true