[workspace]
members = [
    "boa_cli",
    "boa_engine",
    "boa_ast",
    "boa_parser",
    "boa_gc",
    "boa_interner",
    "boa_profiler",
    "boa_tester",
    "boa_unicode",
    "boa_wasm",
    "boa_examples",
    "boa_macros",
    "boa_icu_provider",
]

[workspace.package]
edition = "2021"
version = "0.16.0"
rust-version = "1.66"
authors = ["boa-dev"]
repository = "https://github.com/boa-dev/boa"
license = "Unlicense/MIT"
description = "Boa is a Javascript lexer, parser and Just-in-Time compiler written in Rust. Currently, it has support for some of the language."

[workspace.dependencies]
boa_engine = { version = "0.16.0", path = "boa_engine" }
boa_interner = { version = "0.16.0", path = "boa_interner" }
boa_gc = { version = "0.16.0", path = "boa_gc" }
boa_profiler = { version = "0.16.0", path = "boa_profiler" }
boa_unicode = { version = "0.16.0", path = "boa_unicode" }
boa_macros = { version = "0.16.0", path = "boa_macros" }
boa_ast = { version = "0.16.0", path = "boa_ast" }
boa_parser = { version = "0.16.0", path = "boa_parser" }
boa_icu_provider = { version = "0.16.0", path = "boa_icu_provider" }

[workspace.metadata.workspaces]
allow_branch = "main"

# The ci profile, designed to reduce size of target directory
[profile.ci]
inherits = "dev"
debug = false
incremental = false

# The release profile, used for `cargo build --release`.
[profile.release]
# Enables "fat" LTO, for faster release builds
lto = "fat"
# Makes sure that all code is compiled together, for LTO
codegen-units = 1

# The test profile, used for `cargo test`.
[profile.test]
# Enables thin local LTO and some optimizations.
opt-level = 1

# The benchmark profile, used for `cargo bench`.
[profile.bench]
# Enables "fat" LTO, for faster benchmark builds
lto = "fat"
# Makes sure that all code is compiled together, for LTO
codegen-units = 1
