9fd19b90a9
windows-drivers / probe-and-proto (push) Successful in 24s
apple / swift (push) Successful in 1m8s
windows-drivers / driver-build (push) Failing after 43s
ci / rust (push) Successful in 1m31s
ci / web (push) Successful in 1m5s
ci / docs-site (push) Successful in 52s
apple / screenshots (push) Failing after 2m35s
windows-host / package (push) Successful in 5m23s
ci / bench (push) Successful in 4m48s
android / android (push) Successful in 10m1s
decky / build-publish (push) Successful in 26s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 4s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 4s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 4s
deb / build-publish (push) Successful in 3m29s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 4s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 2m21s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 8m23s
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 8m18s
docker / deploy-docs (push) Successful in 21s
Vendor the published, self-contained windows-drivers-rs 0.5.1 crates (wdk-build, wdk-sys) under vendor/ and add a first-class ApiSubset::Iddcx that bindgens iddcx/1.10/IddCx.h in an extra pass reusing bindgen::Builder::wdk_default (allowlist_file (?i).*iddcx.* — emits only IddCx items; WDF/DXGI types resolve to the shared base/wdf bindings, type-identity by construction). Mirrors the existing gpio/hid/spb subsets exactly: wdk-build gets the enum variant + iddcx_headers() (UMDF-only), wdk-sys gets generate_iddcx + the iddcx feature + pub mod iddcx. [patch.crates-io] redirects all wdk-sys/wdk-build (incl. wdk 0.4.1 transitive) to the patched copies. wdk-probe enables the iddcx feature. MAKE-OR-BREAK: does IddCx.h bindgen in wdk-sys config without a header conflict (issue #515) + does the generated module compile (type-identity)? CI answers it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
49 lines
1.6 KiB
TOML
49 lines
1.6 KiB
TOML
# This file is used to extend the standard rust-driver-makefile to build official sample drivers. See examples at https://github.com/microsoft/Windows-rust-drivers-samples
|
|
# Using this file requires extending both the standard makefile and this makefile in order, as follows:
|
|
# extend = [ { path = "target/rust-driver-makefile.toml" }, { path = "target/rust-driver-sample-makefile.toml" } ]
|
|
|
|
[tasks.wdk-samples-setup]
|
|
private = true
|
|
install_crate = { crate_name = "rust-script", min_version = "0.30.0" }
|
|
plugin = "rust-env-update"
|
|
script_runner = "@rust"
|
|
script = '''
|
|
//! ```cargo
|
|
//! [dependencies]
|
|
//! wdk-build = { path = ".", version = "0.5.1" }
|
|
//! ```
|
|
#![allow(unused_doc_comments)]
|
|
|
|
let env_string = std::env::var_os(wdk_build::cargo_make::WDK_VERSION_ENV_VAR)
|
|
.map_or_else(
|
|
|| panic!("Couldn't read WDK build version that should have been set in init"),
|
|
|os_env_string| os_env_string.to_string_lossy().into_owned(),
|
|
);
|
|
let samples_infverif_env_vars = wdk_build::cargo_make::setup_infverif_for_samples(&env_string)?;
|
|
|
|
wdk_build::cargo_make::forward_printed_env_vars(
|
|
samples_infverif_env_vars,
|
|
);
|
|
'''
|
|
|
|
[tasks.infverif]
|
|
dependencies = ["wdk-samples-setup", "stampinf"]
|
|
condition_script_runner_args = [
|
|
"--base-path",
|
|
"${CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE_DIRECTORY}",
|
|
]
|
|
condition_script = '''
|
|
#!@rust
|
|
|
|
//! ```cargo
|
|
//! [dependencies]
|
|
//! wdk-build = { path = ".", version = "0.5.1" }
|
|
//! anyhow = "1"
|
|
//! ```
|
|
#![allow(unused_doc_comments)]
|
|
|
|
fn main() -> anyhow::Result<()> {
|
|
wdk_build::cargo_make::driver_sample_infverif_condition_script()
|
|
}
|
|
'''
|