[package]
name = "OpenCADStudio"
version = "0.9.7"
edition = "2021"
build = "build.rs"

[workspace]
members = [
    "crates/ocs_plugin_api",
    "crates/ocs_web_worker",
    "crates/dwg-thumbnailer",
    "crates/dwg-thumbnailer-win",
]

[target.'cfg(windows)'.build-dependencies]
winresource = "0.1"

[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
semver = "1"
iced = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aad9e00b9327cb7b8546ed84db39", features = ["image", "svg", "advanced", "canvas", "smol", "markdown"] }
iced_core = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aad9e00b9327cb7b8546ed84db39" }
iced_aw = { git = "https://github.com/HakanSeven12/iced_aw.git", branch = "agent/fix-iced-fonts", features = ["menu", "context_menu", "color_picker", "drop_down"] }
bytemuck = { version = "1.25", features = ["derive"] }
glam = { version = "0.33", features = ["bytemuck"] }
rfd = "0.17"
clap = { version = "4", features = ["derive"] }
env_logger = "0.11"
acadrust = { git = "https://github.com/HakanSeven12/cadcodec.git", rev = "9f3cf8e", features = ["serde"] }
cadkernel = { git = "https://github.com/HakanSeven12/cadkernel.git", rev = "b2b1d4b", features = ["acis", "offset"] }
dwg-thumbnailer = { path = "crates/dwg-thumbnailer" }
flate2 = "1"
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "bmp", "tiff"] }
# Rasterises assets/logo.svg into the window icon at startup, so the taskbar
# icon comes from the same file every other build target does. Already in the
# tree behind iced's svg feature; named here only to use it directly.
resvg = { version = "0.45", default-features = false }
i18n-embed = { version = "0.16", features = ["fluent-system"] }
i18n-embed-fl = "0.10"
rust-embed = "8"
inventory = "0.3"
rustc-hash = "2"
sha2 = "0.10"
fontdb = "0.23"
ttf-parser = "0.25"
cosmic-text = "0.15"
lyon_tessellation = "1.0.20"

[dev-dependencies]
naga = { version = "27", features = ["wgsl-in"] }

[target.'cfg(target_os = "windows")'.dependencies]
windows-sys = { version = "0.61", features = ["Win32_UI_Shell", "Win32_UI_WindowsAndMessaging", "Win32_System_Com", "Win32_System_Registry", "Win32_Storage_FileSystem", "Win32_Foundation"] }

[target.'cfg(target_os = "linux")'.dependencies]
ashpd = { version = "0.13.13", default-features = false, features = ["async-io", "wayland"] }

[patch.crates-io]
iced_core = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aad9e00b9327cb7b8546ed84db39" }
iced_widget = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aad9e00b9327cb7b8546ed84db39" }

[patch."https://github.com/HakanSeven12/cadcodec.git"]
acadrust = { git = "https://git@github.com/HakanSeven12/cadcodec.git", rev = "9f3cf8e" }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
ocs_plugin_api = { path = "crates/ocs_plugin_api", features = ["host"] }
meshopt = "0.6.2"
i18n-embed = { version = "0.16", features = ["desktop-requester"] }
rayon = "1"
open = "5"
printpdf = { version = "0.9.1", default-features = false }
ureq = { version = "3", default-features = false, features = ["rustls", "platform-verifier", "win-system-proxy"] }

[target.'cfg(target_arch = "wasm32")'.dependencies]
ocs_plugin_api = { path = "crates/ocs_plugin_api" }
i18n-embed = { version = "0.16", features = ["web-sys-requester"] }
rust-embed = { version = "8", features = ["debug-embed"] }
console_error_panic_hook = "0.1"
log = "0.4"
getrandom = { version = "0.3", features = ["wasm_js"] }
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
js-sys = "0.3"
bincode = "1.3"
web-sys = { version = "=0.3.85", features = [
    "Window",
    "Storage",
    "StorageManager",
    "Navigator",
    "Document",
    "Element",
    "HtmlAnchorElement",
    "Blob",
    "File",
    "FileSystemDirectoryHandle",
    "FileSystemFileHandle",
    "FileSystemGetDirectoryOptions",
    "FileSystemGetFileOptions",
    "FileSystemWritableFileStream",
    "WritableStream",
    "Url",
    "Response",
    "Worker",
    "WorkerOptions",
    "WorkerType",
    "MessageEvent",
    "ErrorEvent",
    "Clipboard",
    "KeyboardEvent",
    "KeyboardEventInit",
    "EventInit",
    "EventTarget",
    "BeforeUnloadEvent",
    "console",
    "Node",
    "HtmlElement",
] }
iced = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aad9e00b9327cb7b8546ed84db39", features = ["webgl", "fira-sans"] }

[profile.release]
strip = true
