[package]
name = "nes-emu"
version = "0.1.0"
edition = "2024"

[features]
default = []
iced = [
  "dep:iced", "iced/debug", "iced/canvas", "iced/lazy", "iced/image", "iced/advanced", "tokio", "fs"
]
fs = []
tokio = ["iced/tokio", "dep:tokio", "tokio/time", "tokio/fs"]
iced_wasm = ["dep:iced"]
audio = ["dep:cpal", "dep:ringbuf"]
web = ["dep:web-sys", "dep:web-sys"]

[dependencies]
bitfield = "0.19.3"
thiserror = "2.0.18"
tracing = "0.1.41"
tracing-subscriber = { version = "0.3.20", features = ["ansi", "chrono", "env-filter", "json", "serde"] }
bytes = "*"

# yew = { version = "0.23", features = ["csr"], optional = true }
web-sys = { version = "*", features = [
  "HtmlCanvasElement", "CanvasRenderingContext2d",
  "Window", "Document", "KeyboardEvent",
  "DocumentTimeline", "AudioContextState",
  "HtmlButtonElement",
  "HtmlInputElement", "FileList", "File", "Blob",
  "ImageBitmap", "ImageData",
  "AudioContext", "AudioContextOptions",
  "AudioBuffer", "AudioBufferOptions", "AudioDestinationNode", "AudioBufferSourceNode",
  "GainNode", "AudioParam", "DelayNode"
], optional = true }
cpal = { version = "0.17.1", optional = true}
ringbuf = { version = "0.4.8", optional = true}
# iced_core = { path = "../iced/core", features = ["advanced"], optional = true }
rfd = { version = "0.17.2", optional = true }
tokio = { version = "1.48.0", features = [], optional = true }
log = "*"

[dependencies.iced]
git = "https://github.com/the10thWiz/iced"
rev = "31e5378fedbb908cad81cd21915223bf06c0a37c"
features = []
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies]
console_error_panic_hook = "0.1"
console_log = "1.0"

[[bin]]
name = "native"
required-features = ["iced", "rfd", "audio"]

[[bin]]
name = "wasm"
required-features = ["web"]
