Skip to content
This repository was archived by the owner on Sep 2, 2025. It is now read-only.

Commit f6ccb41

Browse files
build!: move to windows from windows-{bindgen,core,targets}
1 parent ded3b5b commit f6ccb41

4 files changed

Lines changed: 27 additions & 178 deletions

File tree

Cargo.lock

Lines changed: 5 additions & 131 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,12 @@ static_assertions = { version = "1.1", default-features = false }
2727

2828
[target.'cfg(windows)'.dependencies]
2929
# Don't increase beyond what Firefox is currently using: https://searchfox.org/mozilla-central/source/Cargo.lock
30-
windows-core = { version = "0.58", default-features = false }
31-
windows-targets = { version = "0.52", default-features = false }
30+
windows = { version = "0.58", features = [
31+
"Win32_Foundation",
32+
"Win32_NetworkManagement_IpHelper",
33+
"Win32_NetworkManagement_Ndis",
34+
"Win32_Networking_WinSock",
35+
] }
3236

3337
[build-dependencies]
3438
cfg_aliases = { version = "0.2", default-features = false }
@@ -38,9 +42,6 @@ mozbuild = { version = "0.1", default-features = false, optional = true }
3842
# Don't increase beyond what Firefox is currently using: https://searchfox.org/mozilla-central/source/Cargo.lock
3943
bindgen = { version = "0.69", default-features = false, features = ["runtime"] }
4044

41-
[target.'cfg(windows)'.build-dependencies]
42-
windows-bindgen = { version = "0.58", default-features = false, features = ["metadata"] }
43-
4445
[features]
4546
gecko = ["dep:mozbuild"]
4647

build.rs

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#![allow(clippy::unwrap_used)] // OK in build scripts.
88

9+
#[cfg(not(windows))]
910
const BINDINGS: &str = "bindings.rs";
1011

1112
#[cfg(feature = "gecko")]
@@ -79,32 +80,6 @@ fn bindgen() {
7980
println!("cargo:rustc-env=BINDINGS={}", out_path.display());
8081
}
8182

82-
#[cfg(windows)]
83-
fn bindgen() {
84-
let out_path = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap()).join(BINDINGS);
85-
windows_bindgen::bindgen([
86-
"--out",
87-
out_path.to_str().unwrap(),
88-
"--config",
89-
"flatten",
90-
"no-inner-attributes",
91-
"minimal",
92-
"--filter",
93-
"Windows.Win32.Foundation.NO_ERROR",
94-
"Windows.Win32.Networking.WinSock.AF_INET",
95-
"Windows.Win32.Networking.WinSock.AF_INET6",
96-
"Windows.Win32.Networking.WinSock.SOCKADDR_INET",
97-
"Windows.Win32.NetworkManagement.IpHelper.FreeMibTable",
98-
"Windows.Win32.NetworkManagement.IpHelper.GetBestInterfaceEx",
99-
"Windows.Win32.NetworkManagement.IpHelper.GetIpInterfaceTable",
100-
"Windows.Win32.NetworkManagement.IpHelper.if_indextoname",
101-
"Windows.Win32.NetworkManagement.IpHelper.MIB_IPINTERFACE_ROW",
102-
"Windows.Win32.NetworkManagement.Ndis.IF_MAX_STRING_SIZE",
103-
])
104-
.expect("Couldn't write bindings!");
105-
println!("cargo:rustc-env=BINDINGS={}", out_path.display());
106-
}
107-
10883
fn main() {
10984
// Setup cfg aliases
11085
cfg_aliases::cfg_aliases! {
@@ -126,5 +101,7 @@ fn main() {
126101
)
127102
}
128103
}
104+
105+
#[cfg(not(windows))]
129106
bindgen();
130107
}

src/windows.rs

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,19 @@ use std::{
1313

1414
use crate::default_err;
1515

16-
#[allow(
17-
non_camel_case_types,
18-
non_snake_case,
19-
clippy::semicolon_if_nothing_returned,
20-
clippy::missing_transmute_annotations,
21-
clippy::upper_case_acronyms,
22-
clippy::struct_field_names
23-
)]
24-
mod bindings {
25-
include!(env!("BINDINGS"));
26-
}
27-
28-
use bindings::{
29-
if_indextoname, FreeMibTable, GetBestInterfaceEx, GetIpInterfaceTable, AF_INET, AF_INET6,
30-
IF_MAX_STRING_SIZE, IN6_ADDR, IN6_ADDR_0, IN_ADDR, IN_ADDR_0, MIB_IPINTERFACE_ROW,
31-
MIB_IPINTERFACE_TABLE, NO_ERROR, SOCKADDR, SOCKADDR_IN, SOCKADDR_IN6, SOCKADDR_INET,
16+
use windows::{
17+
Win32::Foundation::NO_ERROR,
18+
Win32::NetworkManagement::{
19+
IpHelper::{
20+
if_indextoname, FreeMibTable, GetBestInterfaceEx, GetIpInterfaceTable,
21+
MIB_IPINTERFACE_ROW, MIB_IPINTERFACE_TABLE,
22+
},
23+
Ndis::IF_MAX_STRING_SIZE,
24+
},
25+
Win32::Networking::WinSock::{
26+
AF_INET, AF_INET6, IN6_ADDR, IN6_ADDR_0, IN_ADDR, IN_ADDR_0, SOCKADDR, SOCKADDR_IN,
27+
SOCKADDR_IN6, SOCKADDR_INET,
28+
},
3229
};
3330

3431
struct MibTablePtr(*mut MIB_IPINTERFACE_TABLE);

0 commit comments

Comments
 (0)