ruffle/Cargo.toml

141 lines
3.7 KiB
TOML

[workspace]
members = [
"core",
"core/macros",
"core/build_playerglobal",
"desktop",
"swf",
"flv",
"web",
"web/packages/extension/safari",
"wstr",
"scanner",
"exporter",
"frontend-utils",
"render",
"render/canvas",
"render/naga-agal",
"render/wgpu",
"render/webgl",
"ruffle_gc_arena",
"stub-report",
"video",
"video/software",
"video/external",
"tests",
"tests/input-format",
"tests/socket-format",
"tests/mocket",
"tests/framework",
]
default-members = ["desktop"]
resolver = "2"
[workspace.package]
authors = ["Ruffle LLC <ruffle@ruffle.rs>"]
edition = "2021"
homepage = "https://ruffle.rs"
license = "MIT OR Apache-2.0"
repository = "https://github.com/ruffle-rs/ruffle"
version = "0.1.0"
[workspace.dependencies]
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
naga = { version = "22.1.0", features = ["wgsl-out"] }
wgpu = "22.1.0"
egui = { git = "https://github.com/emilk/egui.git", rev = "e0f0b7f47f4094967530214aec060b9f1ce5954e" }
clap = { version = "4.5.17", features = ["derive"] }
cpal = "0.15.3"
anyhow = "1.0"
slotmap = "1.0.7"
async-channel = "2.3.1"
bitflags = "2.6.0"
bytemuck = "1.18.0"
chrono = { version = "0.4.38", default-features = false }
enum-map = "2.7.3"
flate2 = "1.0.33"
futures = "0.3.30"
image = { version = "0.25.2", default-features = false }
js-sys = "0.3.70"
web-sys = "0.3.70"
log = "0.4"
num-derive = "0.4.2"
num-traits = "0.2.19"
serde = "1.0.210"
thiserror = "1.0"
url = "2.5.2"
# Make sure to match wasm-bindgen-cli version to this everywhere.
wasm-bindgen = "=0.2.93"
walkdir = "2.5.0"
tokio = { version = "1.40.0" }
rfd = { git = "https://github.com/PolyMeilex/rfd.git", rev = "e0e725ec9a426acf7c93d9877c41e230fcee3fac" }
[workspace.lints.rust]
# Clippy nightly often adds new/buggy lints that we want to ignore.
# Don't warn about these new lints on stable.
renamed_and_removed_lints = "allow"
unknown_lints = "allow"
[workspace.lints.clippy]
# LONG-TERM: These lints are unhelpful.
manual_map = "allow" # Less readable: Suggests `opt.map(..)` instsead of `if let Some(opt) { .. }`
manual_range_contains = "allow" # Less readable: Suggests `(a..b).contains(n)` instead of `n >= a && n < b`
assigning_clones = "allow" # Sometimes useful, but more often than not it doesn't do anything as
# we overwrite an empty item. And sometimes it can even be a footgun
# by keeping big allocations alive.
# Don't optimize build scripts and macros.
[profile.release.build-override]
opt-level = 0
[profile.dev]
panic = "unwind"
[profile.release]
panic = "abort"
[profile.dev.package.h263-rs]
opt-level = 3
[profile.dev.package.h263-rs-yuv]
opt-level = 3
[profile.dev.package.nihav_core]
opt-level = 3
[profile.dev.package.nihav_codec_support]
opt-level = 3
[profile.dev.package.nihav_duck]
opt-level = 3
# TODO: Set rustflags here instead of in web/core/package.json, when that
# feature becomes stable. See: https://github.com/rust-lang/cargo/issues/10271
# Until then, these custom profiles let cargo keep the build cache alive
# across "dual-wasm" builds, separating it for the two .wasm modules.
[profile.web-vanilla-wasm]
inherits = "release"
[profile.web-wasm-extensions]
inherits = "release"
[profile.ci]
inherits = "release"
debug-assertions = true
overflow-checks = true
# "Not too slow to compile, fast enough to run."
opt-level = 2
# Takes too long, especially on Windows, with marginal benefit otherwise.
lto = "off"
# This is also set with higher authority in `test_rust.yml`.
incremental = true
# Right between the defaults of 16 and 256, for crate fragment caching.
codegen-units = 64