Cargo.toml

[workspace]
members = [
    "crates/beui",
    "crates/beui_macros",
    "crates/reactive",
    "crates/block",
    "crates/block-server",
    "crates/block-client",
    "crates/block-ui",
    "crates/block-ui-test",
    "crates/text-editor-core",
    "crates/block-e2e",
    "crates/block-app",
    "crates/tabletop_games/api",
    "crates/tabletop_games/host",
    "crates/tabletop_games/rules/connect_four",
    "crates/tabletop_games/rules/crazy_8s",
    "crates/tabletop_games/rules/tic_tac_toe",
    "crates/logicgame",
    "crates/cvl2",
    "crates/editors/audio_block",
    "crates/editors/browser_tab",
    "crates/editors/calendar",
    "crates/editors/checklist",
    "crates/editors/compiled_logic",
    "crates/editors/counter",
    "crates/editors/database",
    "crates/editors/database_schema",
    "crates/editors/database_view",
    "crates/editors/deterministic_game",
    "crates/editors/file_tree",
    "crates/editors/game_module",
    "crates/editors/gui_builder",
    "crates/editors/hotbar",
    "crates/editors/image_block",
    "crates/editors/infinite_canvas",
    "crates/editors/logic_game",
    "crates/editors/logic_grid",
    "crates/editors/map",
    "crates/editors/paint_review",
    "crates/editors/pan_zoom",
    "crates/editors/pdf",
    "crates/editors/pixel_art",
    "crates/editors/pixel_ray_tracer",
    "crates/editors/presentation",
    "crates/editors/scene_3d",
    "crates/editors/settings",
    "crates/editors/text_block",
    "crates/editors/ui_settings",
    "crates/editors/version_control_data",
    "crates/editors/version_control_worktree",
    "crates/editors/video_block",
    "crates/editors/workspace_index",
    "crates/editors/workspace_ui",
    "crates/block-editor-plugin",
    "crates/block-gpu-abi",
    "crates/block-gpu-guest",
    "crates/block-gpu-host",
    "crates/block-gpu-shim",
    "crates/block-wasm-host",
    "crates/block-plugin-api",
    "crates/ghostty-vt",
    "crates/paint-snapshot",
    "crates/plugin-test-runner",
    "crates/fix-rust-source",
    "crates/wasi-threads",
]
resolver = "3"

[workspace.package]
edition = "2024"
version = "0.1.0"
license = "MIT"

[workspace.lints.clippy]
too_many_arguments = "allow"

[profile.dev]
debug = "line-tables-only"
incremental = false

[profile.test]
debug = "line-tables-only"
incremental = false

[profile.release-check]
inherits = "dev"
debug-assertions = false
overflow-checks = false
debug = false
incremental = false

[profile.plugin]
inherits = "dev"
opt-level = 2
debug = false
strip = "debuginfo"
incremental = false

[profile.plugin-release]
inherits = "release"
strip = "debuginfo"

# Cranelift is what compiles a plugin, both in the app when an artifact is
# missing and in the compiler the build hands every plugin to, and unoptimised
# it is an order of magnitude slower at it: the plugins a debug build ships take
# minutes rather than seconds. Optimising the compiler where it is built is what
# lets it be built in the same profile, and so the same cargo call, as the app.

[profile.dev.package.cranelift-assembler-x64]
opt-level = 2

[profile.dev.package.cranelift-bforest]
opt-level = 2

[profile.dev.package.cranelift-bitset]
opt-level = 2

[profile.dev.package.cranelift-codegen]
opt-level = 2

[profile.dev.package.cranelift-control]
opt-level = 2

[profile.dev.package.cranelift-entity]
opt-level = 2

[profile.dev.package.cranelift-frontend]
opt-level = 2

[profile.dev.package.cranelift-native]
opt-level = 2

[profile.dev.package.regalloc2]
opt-level = 2

[profile.dev.package.wasmparser]
opt-level = 2

[profile.dev.package.wasmtime]
opt-level = 2

[profile.dev.package.wasmtime-environ]
opt-level = 2

[profile.dev.package.wasmtime-internal-core]
opt-level = 2

[profile.dev.package.wasmtime-internal-cranelift]
opt-level = 2