]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_codegen_cranelift/scripts/rustdoc-clif.rs
Merge commit '2bb3996244cf1b89878da9e39841e9f6bf061602' into sync_cg_clif-2022-12-14
[rust.git] / compiler / rustc_codegen_cranelift / scripts / rustdoc-clif.rs
1 use std::env;
2 use std::ffi::OsString;
3 #[cfg(unix)]
4 use std::os::unix::process::CommandExt;
5 use std::path::PathBuf;
6 use std::process::Command;
7
8 fn main() {
9     let sysroot = PathBuf::from(env::current_exe().unwrap().parent().unwrap());
10
11     let cg_clif_dylib_path = sysroot.join(if cfg!(windows) { "bin" } else { "lib" }).join(
12         env::consts::DLL_PREFIX.to_string() + "rustc_codegen_cranelift" + env::consts::DLL_SUFFIX,
13     );
14
15     let mut args = std::env::args_os().skip(1).collect::<Vec<_>>();
16     args.push(OsString::from("-Cpanic=abort"));
17     args.push(OsString::from("-Zpanic-abort-tests"));
18     let mut codegen_backend_arg = OsString::from("-Zcodegen-backend=");
19     codegen_backend_arg.push(cg_clif_dylib_path);
20     args.push(codegen_backend_arg);
21     if !args.contains(&OsString::from("--sysroot")) {
22         args.push(OsString::from("--sysroot"));
23         args.push(OsString::from(sysroot.to_str().unwrap()));
24     }
25
26     // Ensure that the right toolchain is used
27     env::set_var("RUSTUP_TOOLCHAIN", env!("RUSTUP_TOOLCHAIN"));
28
29     #[cfg(unix)]
30     Command::new("rustdoc").args(args).exec();
31
32     #[cfg(not(unix))]
33     std::process::exit(
34         Command::new("rustdoc").args(args).spawn().unwrap().wait().unwrap().code().unwrap_or(1),
35     );
36 }