]>
git.proxmox.com Git - rustc.git/blob - compiler/rustc_codegen_cranelift/scripts/cargo-clif.rs
3 use std
::os
::unix
::process
::CommandExt
;
4 use std
::path
::PathBuf
;
5 use std
::process
::Command
;
8 let sysroot
= PathBuf
::from(env
::current_exe().unwrap().parent().unwrap());
10 let mut rustflags
= String
::new();
11 rustflags
.push_str(" -Cpanic=abort -Zpanic-abort-tests -Zcodegen-backend=");
14 .join(if cfg
!(windows
) { "bin" }
else { "lib" }
)
16 env
::consts
::DLL_PREFIX
.to_string()
17 + "rustc_codegen_cranelift"
18 + env
::consts
::DLL_SUFFIX
,
23 rustflags
.push_str(" --sysroot ");
24 rustflags
.push_str(sysroot
.to_str().unwrap());
25 env
::set_var("RUSTFLAGS", env
::var("RUSTFLAGS").unwrap_or(String
::new()) + &rustflags
);
26 env
::set_var("RUSTDOCFLAGS", env
::var("RUSTDOCFLAGS").unwrap_or(String
::new()) + &rustflags
);
28 // Ensure that the right toolchain is used
29 env
::set_var("RUSTUP_TOOLCHAIN", env
!("TOOLCHAIN_NAME"));
31 let args
: Vec
<_
> = match env
::args().nth(1).as_deref() {
35 env
::var("RUSTFLAGS").unwrap_or(String
::new()) + " -Cprefer-dynamic",
37 IntoIterator
::into_iter(["rustc".to_string()])
38 .chain(env
::args().skip(2))
41 "-Zunstable-options".to_string(),
42 "-Cllvm-args=mode=jit".to_string(),
49 env
::var("RUSTFLAGS").unwrap_or(String
::new()) + " -Cprefer-dynamic",
51 IntoIterator
::into_iter(["rustc".to_string()])
52 .chain(env
::args().skip(2))
55 "-Zunstable-options".to_string(),
56 "-Cllvm-args=mode=jit-lazy".to_string(),
60 _
=> env
::args().skip(1).collect(),
64 Command
::new("cargo").args(args
).exec();
68 Command
::new("cargo").args(args
).spawn().unwrap().wait().unwrap().code().unwrap_or(1),