diff options
| author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2023-02-15 19:32:58 +0000 |
|---|---|---|
| committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2023-05-24 17:27:28 +0000 |
| commit | 5b3bc29008643203b4de3ffb4c5b5141039c88e6 (patch) | |
| tree | cf38b1cae2bd4bf788e11afa1d42b521fb071e6d /scripts | |
| parent | c87dfd9c9d0ccd4bc7465744039a7f222ba8e614 (diff) | |
| download | rust-5b3bc29008643203b4de3ffb4c5b5141039c88e6.tar.gz rust-5b3bc29008643203b4de3ffb4c5b5141039c88e6.zip | |
Allow testing a cranelift backend built into rustc itself
This avoids building cranelift twice in rust's CI and is a lot easier than trying to make building of codegen backends work from within a cargo invocation done by rust's build system.
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/cargo-clif.rs | 26 | ||||
| -rw-r--r-- | scripts/rustc-clif.rs | 10 | ||||
| -rw-r--r-- | scripts/rustdoc-clif.rs | 10 |
3 files changed, 29 insertions, 17 deletions
diff --git a/scripts/cargo-clif.rs b/scripts/cargo-clif.rs index 0d5d9f7db01..99b97be24e6 100644 --- a/scripts/cargo-clif.rs +++ b/scripts/cargo-clif.rs @@ -12,17 +12,21 @@ fn main() { let mut rustflags = String::new(); rustflags.push_str(" -Cpanic=abort -Zpanic-abort-tests -Zcodegen-backend="); - rustflags.push_str( - sysroot - .join(if cfg!(windows) { "bin" } else { "lib" }) - .join( - env::consts::DLL_PREFIX.to_string() - + "rustc_codegen_cranelift" - + env::consts::DLL_SUFFIX, - ) - .to_str() - .unwrap(), - ); + if let Some(name) = option_env!("BUILTIN_BACKEND") { + rustflags.push_str(name); + } else { + rustflags.push_str( + sysroot + .join(if cfg!(windows) { "bin" } else { "lib" }) + .join( + env::consts::DLL_PREFIX.to_string() + + "rustc_codegen_cranelift" + + env::consts::DLL_SUFFIX, + ) + .to_str() + .unwrap(), + ); + } rustflags.push_str(" --sysroot "); rustflags.push_str(sysroot.to_str().unwrap()); env::set_var("RUSTFLAGS", env::var("RUSTFLAGS").unwrap_or(String::new()) + &rustflags); diff --git a/scripts/rustc-clif.rs b/scripts/rustc-clif.rs index df94b80b34f..33d51bdddea 100644 --- a/scripts/rustc-clif.rs +++ b/scripts/rustc-clif.rs @@ -19,9 +19,13 @@ fn main() { let mut args = vec![]; args.push(OsString::from("-Cpanic=abort")); args.push(OsString::from("-Zpanic-abort-tests")); - let mut codegen_backend_arg = OsString::from("-Zcodegen-backend="); - codegen_backend_arg.push(cg_clif_dylib_path); - args.push(codegen_backend_arg); + if let Some(name) = option_env!("BUILTIN_BACKEND") { + args.push(OsString::from(format!("-Zcodegen-backend={name}"))) + } else { + let mut codegen_backend_arg = OsString::from("-Zcodegen-backend="); + codegen_backend_arg.push(cg_clif_dylib_path); + args.push(codegen_backend_arg); + } if !passed_args.iter().any(|arg| { arg == "--sysroot" || arg.to_str().map(|s| s.starts_with("--sysroot=")) == Some(true) }) { diff --git a/scripts/rustdoc-clif.rs b/scripts/rustdoc-clif.rs index 36a00dc676e..10582cc7bb3 100644 --- a/scripts/rustdoc-clif.rs +++ b/scripts/rustdoc-clif.rs @@ -19,9 +19,13 @@ fn main() { let mut args = vec![]; args.push(OsString::from("-Cpanic=abort")); args.push(OsString::from("-Zpanic-abort-tests")); - let mut codegen_backend_arg = OsString::from("-Zcodegen-backend="); - codegen_backend_arg.push(cg_clif_dylib_path); - args.push(codegen_backend_arg); + if let Some(name) = option_env!("BUILTIN_BACKEND") { + args.push(OsString::from(format!("-Zcodegen-backend={name}"))) + } else { + let mut codegen_backend_arg = OsString::from("-Zcodegen-backend="); + codegen_backend_arg.push(cg_clif_dylib_path); + args.push(codegen_backend_arg); + } if !passed_args.iter().any(|arg| { arg == "--sysroot" || arg.to_str().map(|s| s.starts_with("--sysroot=")) == Some(true) }) { |
