forked from krakenaut9/windows-drivers-rs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
123 lines (111 loc) · 3.7 KB
/
Cargo.toml
File metadata and controls
123 lines (111 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
[workspace]
members = ["crates/*"]
# Examples and tests must be excluded from the workspace since only one WDK configuration per build graph is supported.
exclude = [
# Each example and test must be explicitly listed since glob is not currently supported for workspace.exclude: https://github.com/rust-lang/cargo/issues/6009
"examples/sample-kmdf-driver",
"examples/sample-umdf-driver",
"examples/sample-wdm-driver",
"tests/config-kmdf",
"tests/config-umdf",
"tests/config-wdm",
"tests/wdk-macros-tests",
"tests/wdk-sys-tests",
]
resolver = "3"
[workspace.package]
edition = "2024"
rust-version = "1.85.0"
repository = "https://github.com/microsoft/windows-drivers-rs"
readme = "README.md"
license = "MIT OR Apache-2.0"
[workspace.dependencies]
# Workspace Crates
wdk = { path = "crates/wdk", version = "0.4.0" }
wdk-alloc = { path = "crates/wdk-alloc", version = "0.4.0" }
wdk-build = { path = "crates/wdk-build", version = "0.5.0" }
# Exact version (=) kept in lockstep with wdk-sys. These crates must be versioned together because:
# (1) wdk-macros is a proc-macro crate consumed only through wdk-sys re-exports, and
# (2) the two crates form a tightly coupled API surface.
# Enforced by .github/workflows/version-checks.yaml (check-version-consistency job, lockstep step).
wdk-macros = { path = "crates/wdk-macros", version = "=0.5.0" }
wdk-panic = { path = "crates/wdk-panic", version = "0.4.0" }
wdk-sys = { path = "crates/wdk-sys", version = "0.5.0" }
# External Crates
anyhow = "1.0.97"
assert_cmd = "2.0.14"
assert_fs = "1.1.3"
bindgen = "0.71.0"
camino = "1.1.9"
cargo_metadata = "0.19.2"
cc = "1.2.39"
cfg-if = "1.0.3"
clap = "4.5.40"
clap-cargo = "0.15.2"
clap-verbosity-flag = "3.0.2"
fs4 = "0.13.1"
include_dir = "0.7.4"
itertools = "0.13.0"
mockall = "0.13.1"
mockall_double = "0.3.1"
paste = "1.0.15"
predicates = "3.1.0"
pretty_assertions = "1.4.1"
proc-macro2 = "1.0.101"
quote = "1.0.40"
regex = "1.11.1"
rustversion = "1.0.20"
scratch = "1.0"
semver = "1.0.26"
serde = "1.0"
serde_json = "1.0"
sha2 = "0.10.8"
syn = "2.0.106"
thiserror = "2.0.12"
tracing = "0.1.40"
tracing-subscriber = "0.3.20"
windows = "0.58.0"
# The following workspace.metadata.wdk sections can be uncommented to configure the workspace for a specific WDK configuration (ex. for rust-analyzer to resolve things for a specific configuration)
# Uncomment the section below for KMDF
# [workspace.metadata.wdk.driver-model]
# driver-type = "KMDF"
# kmdf-version-major = 1
# target-kmdf-version-minor = 33
# Uncomment the section below for UMDF
# [workspace.metadata.wdk.driver-model]
# driver-type = "UMDF"
# umdf-version-major = 2
# target-umdf-version-minor = 33
# Uncomment the section below for WDM
# [workspace.metadata.wdk.driver-model]
# driver-type = "WDM"
# Until https://github.com/rust-lang/cargo/issues/12208 is resolved, each package in the workspace needs to explictly
# add the following block to its Cargo manifest in order to enable these global lint configurations:
#
# [lints]
# workspace = true
[workspace.lints.rust]
missing_docs = "warn"
unsafe_op_in_unsafe_fn = "forbid"
[workspace.lints.clippy]
# Lint Groups
all = { level = "deny", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
cargo = { level = "warn", priority = -1 }
# Individual Lints
multiple_unsafe_ops_per_block = "forbid"
undocumented_unsafe_blocks = "forbid"
unnecessary_safety_doc = "forbid"
[workspace.lints.rustdoc]
bare_urls = "warn"
broken_intra_doc_links = "warn"
invalid_codeblock_attributes = "warn"
invalid_html_tags = "warn"
invalid_rust_codeblocks = "warn"
missing_crate_level_docs = "warn"
private_intra_doc_links = "warn"
redundant_explicit_links = "warn"
unescaped_backticks = "warn"
[profile.release]
lto = true