master
Colby Knox Restore 25 files to their state before PR #61: the wiki's pr revert left them truncated to the diff's context 4f3a0f4 8d ago
[package]
name = "kicad-platform"
description = "OS-specific layer of the Adom KiCad Bridge: one Platform trait, one implementation compiled in per target OS"
version.workspace = true
edition.workspace = true
license.workspace = true
publish.workspace = true

[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }

# Windows-only crates. Add uiautomation and windows here in phase 3.
[target.'cfg(windows)'.dependencies]
winreg = "0.55"
# Phase 3: window control (EnumWindows, menus, PostMessage, WinEventHook, placement,
# process queries) and UI Automation. Feature lists stay minimal on purpose.
windows = { version = "0.61", features = [
    "Win32_Foundation",
    "Win32_UI_WindowsAndMessaging",
    "Win32_UI_Input_KeyboardAndMouse",
    "Win32_UI_Accessibility",
    "Win32_System_Threading",
    "Win32_System_ProcessStatus",
    "Win32_System_Diagnostics_ToolHelp",
    "Win32_Graphics_Gdi",
    "Win32_Graphics_Dwm",
    "Win32_UI_Shell",
    "Win32_UI_HiDpi",
    "Win32_System_Com",
    "Win32_System_Variant", # KiCad shortcut AUMID repair (win/shortcuts.rs)
    "Win32_System_Com_StructuredStorage", # KiCad shortcut AUMID repair (win/shortcuts.rs)
    "Win32_UI_Shell_PropertiesSystem", # KiCad shortcut AUMID repair (win/shortcuts.rs)
    "Win32_Security",                 # SECURITY_ATTRIBUTES in the CreateProcessW signature (spawn_background)
    "Win32_Storage_Xps",              # PrintWindow lives here in the windows crate (capture_window)
    "Win32_System_SystemInformation", # GetTickCount (seconds_since_input)
    "Win32_Media_Multimedia",         # mciSendStringW: tour narration audio without a window (tour_input)
    "Win32_System_LibraryLoader",     # LoadLibraryExW/GetProcAddress: KiCad's ngspice.dll for kicad_simulate (ngspice.rs)
    "Win32_Storage_FileSystem",       # GetLogicalDrives/GetDriveTypeW: KiCad installed on another drive (wiki #137)
] }
uiautomation = "0.24"

# macOS-only crates go here (Kyle). Candidates: objc2, core-foundation, accessibility.
[target.'cfg(target_os = "macos")'.dependencies]

# Linux-only crates go here (Barrett). Candidates: x11rb, zbus (portal screenshots), atspi.
[target.'cfg(target_os = "linux")'.dependencies]