fix(windows-installer): build the gamepad drivers from source in CI too

Fold the pf-dualsense (DualSense / DualShock 4) and pf-xusb (Xbox 360 / XInput)
UMDF drivers into the in-tree drivers workspace (their source had stale
../../crates/wdk-* path-deps from before the wdk vendoring reorg and could no
longer build at all) and build them from source per release, exactly like
pf-vdisplay - same anti-stale reasoning. One `cargo build --release` now builds
all three drivers against the vendored wdk-sys (incl. the bindgen 0.72 pin), and
build-gamepad-drivers.ps1 signs pf_dualsense + pf_xusb (clear FORCE_INTEGRITY ->
sign dll -> stampinf -> Inf2Cat -> sign cat) with one shared cert + .cer,
matching the layout install-gamepad-drivers.ps1 expects. pack-host-installer.ps1
builds + stages them instead of the retired checked-in binaries.

Validated on the runner: the whole workspace (pf-vdisplay + pf-dualsense +
pf-xusb) builds with CARGO_TARGET_DIR=C:\t set, and build-gamepad-drivers.ps1
produces signed pf_dualsense.{dll,inf,cat} + pf_xusb.{dll,inf,cat} + the .cer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-26 15:08:40 +00:00
parent 64abce6daa
commit 92e68024f1
18 changed files with 224 additions and 96 deletions
+20 -2
View File
@@ -63,9 +63,9 @@ dependencies = [
[[package]]
name = "anyhow"
version = "1.0.102"
version = "1.0.103"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3"
[[package]]
name = "bindgen"
@@ -401,6 +401,15 @@ dependencies = [
"bytemuck",
]
[[package]]
name = "pf-dualsense"
version = "0.0.1"
dependencies = [
"wdk",
"wdk-build",
"wdk-sys",
]
[[package]]
name = "pf-vdisplay"
version = "0.0.1"
@@ -414,6 +423,15 @@ dependencies = [
"windows",
]
[[package]]
name = "pf-xusb"
version = "0.0.1"
dependencies = [
"wdk",
"wdk-build",
"wdk-sys",
]
[[package]]
name = "pin-project-lite"
version = "0.2.17"