wdk-build 0.3.0

A library to configure a Cargo build script for binding generation and downstream linking of the WDK (Windows Driver Kit)
# 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.3.0" }
//! ```
#![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.3.0" }
//! anyhow = "1"
//! ```
#![allow(unused_doc_comments)]

fn main() -> anyhow::Result<()> {
    wdk_build::cargo_make::driver_sample_infverif_condition_script()
}
'''