[package] name = "winit" version = "0.30.5" authors = [ "The winit contributors", "Pierre Krieger ", ] description = "Cross-platform window creation library." keywords = ["windowing"] readme = "README.md" documentation = "https://docs.rs/winit" categories = ["gui"] rust-version.workspace = true repository.workspace = true license.workspace = true edition.workspace = true exclude = ["/.cargo"] [package.metadata.docs.rs] features = [ "rwh_04", "rwh_05", "rwh_06", "serde", "mint", # Enabled to get docs to compile "android-native-activity", ] # These are all tested in CI targets = [ # Windows "i686-pc-windows-msvc", "x86_64-pc-windows-msvc", # macOS "x86_64-apple-darwin", # Unix (X11 & Wayland) "i686-unknown-linux-gnu", "x86_64-unknown-linux-gnu", # iOS "x86_64-apple-ios", # Android "aarch64-linux-android", # Web "wasm32-unknown-unknown", ] rustdoc-args = ["--cfg", "docsrs"] # Features are documented in either `lib.rs` or under `winit::platform`. [features] default = ["rwh_06", "x11", "wayland", "wayland-dlopen", "wayland-csd-adwaita"] x11 = ["x11-dl", "bytemuck", "percent-encoding", "xkbcommon-dl/x11", "x11rb"] wayland = [ "wayland-client", "wayland-backend", "wayland-protocols", "wayland-protocols-plasma", "sctk", "ahash", "memmap2", ] wayland-dlopen = ["wayland-backend/dlopen"] wayland-csd-adwaita = ["sctk-adwaita", "sctk-adwaita/ab_glyph"] wayland-csd-adwaita-crossfont = ["sctk-adwaita", "sctk-adwaita/crossfont"] wayland-csd-adwaita-notitle = ["sctk-adwaita"] android-native-activity = ["android-activity/native-activity"] android-game-activity = ["android-activity/game-activity"] serde = ["dep:serde", "cursor-icon/serde", "smol_str/serde", "dpi/serde"] mint = ["dpi/mint"] rwh_04 = ["dep:rwh_04", "ndk/rwh_04"] rwh_05 = ["dep:rwh_05", "ndk/rwh_05"] rwh_06 = ["dep:rwh_06", "ndk/rwh_06"] [build-dependencies] cfg_aliases = "0.2.1" [dependencies] bitflags = "2" cursor-icon = "1.1.0" dpi = { version = "0.1.1", path = "dpi" } rwh_04 = { package = "raw-window-handle", version = "0.4", optional = true } rwh_05 = { package = "raw-window-handle", version = "0.5.2", features = [ "std", ], optional = true } rwh_06 = { package = "raw-window-handle", version = "0.6", features = [ "std", ], optional = true } serde = { workspace = true, optional = true } smol_str = "0.2.0" tracing = { version = "0.1.40", default-features = false } [dev-dependencies] image = { version = "0.25.0", default-features = false, features = ["png"] } tracing = { version = "0.1.40", default-features = false, features = ["log"] } tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } winit = { path = ".", features = ["rwh_05"] } [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dev-dependencies] softbuffer = { version = "0.4.0", default-features = false, features = [ "x11", "x11-dlopen", "wayland", "wayland-dlopen", ] } [target.'cfg(target_os = "android")'.dependencies] android-activity = "0.6.0" ndk = { version = "0.9.0", default-features = false } [target.'cfg(any(target_os = "ios", target_os = "macos"))'.dependencies] core-foundation = "0.9.3" objc2 = "0.5.2" [target.'cfg(target_os = "macos")'.dependencies] core-graphics = "0.23.1" block2 = "0.5.1" [target.'cfg(target_os = "macos")'.dependencies.objc2-foundation] version = "0.2.2" features = [ "block2", "dispatch", "NSArray", "NSAttributedString", "NSData", "NSDictionary", "NSDistributedNotificationCenter", "NSEnumerator", "NSKeyValueObserving", "NSNotification", "NSObjCRuntime", "NSPathUtilities", "NSProcessInfo", "NSRunLoop", "NSString", "NSThread", "NSValue", ] [target.'cfg(target_os = "macos")'.dependencies.objc2-app-kit] version = "0.2.2" features = [ "NSAppearance", "NSApplication", "NSBitmapImageRep", "NSButton", "NSColor", "NSControl", "NSCursor", "NSDragging", "NSEvent", "NSGraphics", "NSGraphicsContext", "NSImage", "NSImageRep", "NSMenu", "NSMenuItem", "NSOpenGLView", "NSPasteboard", "NSResponder", "NSRunningApplication", "NSScreen", "NSTextInputClient", "NSTextInputContext", "NSView", "NSWindow", "NSWindowScripting", "NSWindowTabGroup", ] [target.'cfg(target_os = "ios")'.dependencies.objc2-foundation] version = "0.2.2" features = [ "dispatch", "NSArray", "NSEnumerator", "NSGeometry", "NSObjCRuntime", "NSString", "NSProcessInfo", "NSThread", "NSSet", ] [target.'cfg(target_os = "ios")'.dependencies.objc2-ui-kit] version = "0.2.2" features = [ "UIApplication", "UIDevice", "UIEvent", "UIGeometry", "UIGestureRecognizer", "UIOrientation", "UIPanGestureRecognizer", "UIPinchGestureRecognizer", "UIResponder", "UIRotationGestureRecognizer", "UIScreen", "UIScreenMode", "UITapGestureRecognizer", "UITouch", "UITraitCollection", "UIView", "UIViewController", "UIWindow", ] [target.'cfg(target_os = "windows")'.dependencies] unicode-segmentation = "1.7.1" [target.'cfg(target_os = "windows")'.dependencies.windows-sys] version = "0.52.0" features = [ "Win32_Devices_HumanInterfaceDevice", "Win32_Foundation", "Win32_Globalization", "Win32_Graphics_Dwm", "Win32_Graphics_Gdi", "Win32_Media", "Win32_System_Com_StructuredStorage", "Win32_System_Com", "Win32_System_LibraryLoader", "Win32_System_Ole", "Win32_System_SystemInformation", "Win32_System_SystemServices", "Win32_System_Threading", "Win32_System_WindowsProgramming", "Win32_UI_Accessibility", "Win32_UI_Controls", "Win32_UI_HiDpi", "Win32_UI_Input_Ime", "Win32_UI_Input_KeyboardAndMouse", "Win32_UI_Input_Pointer", "Win32_UI_Input_Touch", "Win32_UI_Shell", "Win32_UI_TextServices", "Win32_UI_WindowsAndMessaging", ] [target.'cfg(all(unix, not(any(target_os = "redox", target_family = "wasm", target_os = "android", target_os = "ios", target_os = "macos"))))'.dependencies] ahash = { version = "0.8.7", features = ["no-rng"], optional = true } bytemuck = { version = "1.13.1", default-features = false, optional = true } calloop = "0.13.0" libc = "0.2.64" memmap2 = { version = "0.9.0", optional = true } percent-encoding = { version = "2.0", optional = true } rustix = { version = "0.38.4", default-features = false, features = [ "std", "system", "thread", "process", ] } sctk = { package = "smithay-client-toolkit", version = "0.19.2", default-features = false, features = [ "calloop", ], optional = true } sctk-adwaita = { version = "0.10.1", default-features = false, optional = true } wayland-backend = { version = "0.3.5", default-features = false, features = [ "client_system", ], optional = true } wayland-client = { version = "0.31.4", optional = true } wayland-protocols = { version = "0.32.2", features = [ "staging", ], optional = true } wayland-protocols-plasma = { version = "0.3.2", features = [ "client", ], optional = true } x11-dl = { version = "2.19.1", optional = true } x11rb = { version = "0.13.0", default-features = false, features = [ "allow-unsafe-code", "dl-libxcb", "randr", "resource_manager", "xinput", "xkb", ], optional = true } xkbcommon-dl = "0.4.2" [target.'cfg(target_os = "redox")'.dependencies] orbclient = { version = "0.3.47", default-features = false } redox_syscall = "0.4.1" [target.'cfg(target_family = "wasm")'.dependencies.web_sys] package = "web-sys" version = "0.3.64" features = [ 'AbortController', 'AbortSignal', 'Blob', 'BlobPropertyBag', 'console', 'CssStyleDeclaration', 'Document', 'DomException', 'DomRect', 'DomRectReadOnly', 'Element', 'Event', 'EventTarget', 'FocusEvent', 'HtmlCanvasElement', 'HtmlElement', 'HtmlImageElement', 'ImageBitmap', 'ImageBitmapOptions', 'ImageBitmapRenderingContext', 'ImageData', 'IntersectionObserver', 'IntersectionObserverEntry', 'KeyboardEvent', 'MediaQueryList', 'MessageChannel', 'MessagePort', 'Navigator', 'Node', 'PageTransitionEvent', 'PointerEvent', 'PremultiplyAlpha', 'ResizeObserver', 'ResizeObserverBoxOptions', 'ResizeObserverEntry', 'ResizeObserverOptions', 'ResizeObserverSize', 'VisibilityState', 'Window', 'WheelEvent', 'Worker', 'Url', ] [target.'cfg(target_family = "wasm")'.dependencies] js-sys = "0.3.64" pin-project = "1" wasm-bindgen = "0.2" wasm-bindgen-futures = "0.4" web-time = "1" [target.'cfg(all(target_family = "wasm", target_feature = "atomics"))'.dependencies] atomic-waker = "1" concurrent-queue = { version = "2", default-features = false } [target.'cfg(target_family = "wasm")'.dev-dependencies] console_error_panic_hook = "0.1" tracing-web = "0.1" [[example]] doc-scrape-examples = true name = "window" [workspace] resolver = "2" members = ["dpi"] [workspace.package] rust-version = "1.70.0" repository = "https://github.com/rust-windowing/winit" license = "Apache-2.0" edition = "2021" [workspace.dependencies] serde = { version = "1", features = ["serde_derive"] } mint = "0.5.6"