[package]
description = "Winit implementation helpers"
documentation = "https://docs.rs/winit-common"
edition.workspace = true
license.workspace = true
name = "winit-common"
repository.workspace = true
rust-version.workspace = true
version.workspace = true

[features]
# Event Handler
event-handler = []

# XKB
wayland = ["dep:memmap2"]
x11 = ["xkbcommon-dl?/x11", "dep:x11-dl"]
xkb = ["dep:xkbcommon-dl", "dep:smol_str"]

# CoreFoundation
core-foundation = ["dep:block2", "dep:objc2", "dep:objc2-core-foundation"]

# Foundation
foundation = ["dep:block2", "dep:objc2", "dep:objc2-foundation"]

[dependencies]
smol_str = { workspace = true, optional = true }
tracing.workspace = true
winit-core.workspace = true

# XKB
memmap2 = { workspace = true, optional = true }
x11-dl = { workspace = true, optional = true }
xkbcommon-dl = { workspace = true, optional = true }

# Foundation / CoreFoundation
block2 = { workspace = true, optional = true }
objc2 = { workspace = true, optional = true }
objc2-core-foundation = { workspace = true, optional = true, features = [
    "std",
    "block2",
    "objc2",
    "CFRunLoop",
    "CFString",
] }
objc2-foundation = { workspace = true, optional = true, features = [
    "std",
    "block2",
    "NSNotification",
    "NSString",
    "NSOperation",
] }

[package.metadata.docs.rs]
all-features = true
