Browse Source

chore: emit rustc-check-cfg for rust 1.80 (#10392)

* chore: emit rustc-check-cfg for rust 1.80

* build: add lints.rust.unexpected_cfgs to suppress false positive warnings
anatawa12 1 year ago
parent
commit
fbcbc5ef7c

+ 8 - 0
.changes/rustc-check-cfg.md

@@ -0,0 +1,8 @@
+---
+"tauri": patch:changes
+"tauri-build": patch:changes
+"tauri-runtime": patch:changes
+"tauri-runtime-wry": patch:changes
+---
+
+Emit `cargo:rustc-check-cfg` instruction so Cargo validates custom cfg attributes on Rust 1.80 (or nightly-2024-05-05).

+ 4 - 0
core/tauri-build/Cargo.toml

@@ -16,6 +16,10 @@ readme = "README.md"
 all-features = true
 rustdoc-args = [ "--cfg", "doc_cfg" ]
 
+[lints.rust]
+# cfg(doc_cfg) is used for docs.rs detection. see above
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(doc_cfg)'] }
+
 [dependencies]
 anyhow = "1"
 quote = { version = "1", optional = true }

+ 1 - 0
core/tauri-build/src/lib.rs

@@ -200,6 +200,7 @@ fn has_feature(feature: &str) -> bool {
 // creates a cfg alias if `has_feature` is true.
 // `alias` must be a snake case string.
 fn cfg_alias(alias: &str, has_feature: bool) {
+  println!("cargo:rustc-check-cfg=cfg({alias})");
   if has_feature {
     println!("cargo:rustc-cfg={alias}");
   }

+ 1 - 0
core/tauri-runtime-wry/build.rs

@@ -5,6 +5,7 @@
 // creates a cfg alias if `has_feature` is true.
 // `alias` must be a snake case string.
 fn alias(alias: &str, has_feature: bool) {
+  println!("cargo:rustc-check-cfg=cfg({alias})");
   if has_feature {
     println!("cargo:rustc-cfg={alias}");
   }

+ 4 - 0
core/tauri-runtime/Cargo.toml

@@ -22,6 +22,10 @@ targets = [
   "x86_64-apple-darwin"
 ]
 
+[lints.rust]
+# cfg(doc_cfg) is used for docs.rs detection. see above
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(doc_cfg)'] }
+
 [dependencies]
 serde = { version = "1.0", features = [ "derive" ] }
 serde_json = "1.0"

+ 1 - 0
core/tauri-runtime/build.rs

@@ -5,6 +5,7 @@
 // creates a cfg alias if `has_feature` is true.
 // `alias` must be a snake case string.
 fn alias(alias: &str, has_feature: bool) {
+  println!("cargo:rustc-check-cfg=cfg({alias})");
   if has_feature {
     println!("cargo:rustc-cfg={alias}");
   }

+ 4 - 0
core/tauri/Cargo.toml

@@ -45,6 +45,10 @@ targets = [
   "x86_64-apple-darwin"
 ]
 
+[lints.rust]
+# cfg(doc_cfg) is used for docs.rs detection. see above
+unexpected_cfgs = { level = "warn", check-cfg = ['cfg(doc_cfg)'] }
+
 [package.metadata.cargo-udeps.ignore]
 normal = [ "reqwest", "nix" ]
 

+ 1 - 0
core/tauri/build.rs

@@ -30,6 +30,7 @@ fn has_feature(feature: &str) -> bool {
 // creates a cfg alias if `has_feature` is true.
 // `alias` must be a snake case string.
 fn alias(alias: &str, has_feature: bool) {
+  println!("cargo:rustc-check-cfg=cfg({alias})");
   if has_feature {
     println!("cargo:rustc-cfg={alias}");
   }