diff --git a/crates/metadata/lib.rs b/crates/metadata/lib.rs index 82fc6da68..e9b7a4a15 100644 --- a/crates/metadata/lib.rs +++ b/crates/metadata/lib.rs @@ -281,6 +281,10 @@ impl Metadata { let rustflags = toml::to_string(&self.rustc_args).expect("serializing a string should never fail"); cargo_args.push(format!("build.rustflags={}", rustflags)); + cargo_args.push("-Zhost-config".into()); + cargo_args.push("-Ztarget-applies-to-host".into()); + cargo_args.push("--config".into()); + cargo_args.push(format!("host.rustflags={}", rustflags)); } if !all_rustdoc_args.is_empty() { diff --git a/src/docbuilder/rustwide_builder.rs b/src/docbuilder/rustwide_builder.rs index de8f58e41..e591f6fa0 100644 --- a/src/docbuilder/rustwide_builder.rs +++ b/src/docbuilder/rustwide_builder.rs @@ -1081,4 +1081,16 @@ mod tests { Ok(()) }); } + + #[test] + #[ignore] + fn test_rustflags_are_passed_to_build_script() { + wrapper(|env| { + let crate_ = "proc-macro2"; + let version = "1.0.33"; + let mut builder = RustwideBuilder::init(env).unwrap(); + assert!(builder.build_package(crate_, version, PackageKind::CratesIo)?); + Ok(()) + }); + } }