# Unified in-tree workspace for punktfunk's all-Rust UMDF drivers, on microsoft/windows-drivers-rs # (crates.io wdk/wdk-sys/wdk-build — NOT the dev-box ../../crates/wdk* path-deps). Part of the # Windows-host rewrite (docs/windows-host-rewrite.md, M1). pf-vdisplay + the gamepad drivers move here. # # Separate from the main cargo workspace (own [workspace] root) because driver crates are cdylibs built # with the WDK toolchain (cargo-wdk / wdk-build) on Windows only. Path-deps the shared ABI crate # crates/pf-vdisplay-proto from the main tree. [workspace] resolver = "2" members = ["wdk-probe"] [workspace.package] edition = "2024" version = "0.0.1" license = "MIT OR Apache-2.0" publish = false [workspace.dependencies] wdk = "0.4.1" wdk-sys = "0.5.1" wdk-build = "0.5.1" pf-vdisplay-proto = { path = "../../../crates/pf-vdisplay-proto" } # Vendored windows-drivers-rs 0.5.1 (the published, self-contained crates) + an added `iddcx` # ApiSubset (M1 — bindgens iddcx/1.10/IddCx.h reusing wdk_default for WDF type-identity). Redirect ALL # wdk-sys/wdk-build refs (incl. wdk 0.4.1's transitive deps) to the patched copies so there is exactly # one (iddcx-capable) wdk-sys in the graph. Pinned; do not chase upstream. [patch.crates-io] wdk-build = { path = "vendor/wdk-build" } wdk-sys = { path = "vendor/wdk-sys" } # wdk-sys's build script reads the WDK driver-model from the WORKSPACE metadata (a workspace build can't # know which member it's building for). All our drivers are UMDF 2.x (incl. pf-vdisplay's IddCx), so set # it once here; a member needing a different model would get its own [package.metadata.wdk.driver-model]. [workspace.metadata.wdk.driver-model] driver-type = "UMDF" umdf-version-major = 2 target-umdf-version-minor = 31 [profile.dev] panic = "abort" lto = true [profile.release] panic = "abort" lto = true