mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-16 17:03:35 +00:00
Disable -Zdual-proc-macros if the target doesn't support proc-macros
This commit is contained in:
parent
6414d9f52d
commit
68034f837a
@ -1683,10 +1683,24 @@ impl<'a> Builder<'a> {
|
||||
match mode {
|
||||
Mode::Std | Mode::ToolBootstrap | Mode::ToolStd => {}
|
||||
Mode::Rustc | Mode::Codegen | Mode::ToolRustc => {
|
||||
// Build proc macros both for the host and the target
|
||||
// Build proc macros both for the host and the target unless proc-macros are not
|
||||
// supported by the target.
|
||||
if target != compiler.host && cmd_kind != Kind::Check {
|
||||
cargo.arg("-Zdual-proc-macros");
|
||||
rustflags.arg("-Zdual-proc-macros");
|
||||
let error = command(self.rustc(compiler))
|
||||
.arg("--target")
|
||||
.arg(target.rustc_target_arg())
|
||||
.arg("--print=file-names")
|
||||
.arg("--crate-type=proc-macro")
|
||||
.arg("-")
|
||||
.run_capture(self)
|
||||
.stderr();
|
||||
let not_supported = error
|
||||
.lines()
|
||||
.any(|line| line.contains("unsupported crate type `proc-macro`"));
|
||||
if !not_supported {
|
||||
cargo.arg("-Zdual-proc-macros");
|
||||
rustflags.arg("-Zdual-proc-macros");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user