[package] name = "solidcraft" description = "SolidCraft desktop app" version.workspace = true edition.workspace = true license.workspace = true publish = false default-run = "solidcraft" # The workspace lints, except unsafe_code: denied, not forbidden, so that src/open_documents.rs can # allow it (macOS file-open events have no safe API). Keep the rest in sync with [workspace.lints]. [lints.rust] unsafe_code = "deny" [lints.clippy] dbg_macro = "warn" todo = "warn" too_many_arguments = "allow" type_complexity = "allow" neg_cmp_op_on_partial_ord = "allow" [dependencies] solidcraft-engine = { workspace = true } solidcraft-ui-egui = { workspace = true } eframe = { workspace = true, features = ["default_fonts", "wgpu", "accesskit", "wayland", "x11", "links"] } egui = { workspace = true } serde_json = { workspace = true } log = { workspace = true } rfd = { workspace = true } # Checks eframe's settings file (app.ron) before eframe reads it (src/startup.rs). ron = "0.12" getrandom = "0.3" # The update check (docs/updates.md): HTTPS with rustls, certificates from the operating system. ureq = { version = "3.4", default-features = false, features = ["rustls-no-provider", "platform-verifier"] } rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] } [target.'cfg(any(target_os = "windows", target_os = "linux"))'.dependencies] quick-xml = { workspace = true } [target.'cfg(target_os = "windows")'.dependencies] hidapi = { version = "2.6.7", default-features = false, features = ["windows-native"] } [target.'cfg(target_os = "macos")'.dependencies] # Files opened from Finder and the Dock (src/open_documents.rs); all already come with eframe and rfd. objc2 = "0.6" objc2-app-kit = { version = "0.3", default-features = false, features = ["std", "NSApplication", "NSResponder"] } objc2-foundation = { version = "0.3", default-features = false, features = ["std", "block2", "NSArray", "NSNotification", "NSOperation", "NSString", "NSURL"] } block2 = "0.6" [target.'cfg(all(unix, not(target_os = "macos")))'.dependencies] winit = { version = "0.30", default-features = false, features = ["x11"] } [dev-dependencies] pollster = { workspace = true } [build-dependencies] embed-resource = "3.0.11"