]> git.proxmox.com Git - rustc.git/blame - src/bootstrap/bin/sccache-plus-cl.rs
New upstream version 1.34.2+dfsg1
[rustc.git] / src / bootstrap / bin / sccache-plus-cl.rs
CommitLineData
7cac9316
XL
1use std::env;
2use std::process::{self, Command};
3
4fn main() {
5 let target = env::var("SCCACHE_TARGET").unwrap();
6 // Locate the actual compiler that we're invoking
94b46f34
XL
7 env::set_var("CC", env::var_os("SCCACHE_CC").unwrap());
8 env::set_var("CXX", env::var_os("SCCACHE_CXX").unwrap());
ea8adc8c 9 let mut cfg = cc::Build::new();
7cac9316
XL
10 cfg.cargo_metadata(false)
11 .out_dir("/")
12 .target(&target)
13 .host(&target)
14 .opt_level(0)
ea8adc8c 15 .warnings(false)
7cac9316
XL
16 .debug(false);
17 let compiler = cfg.get_compiler();
18
19 // Invoke sccache with said compiler
20 let sccache_path = env::var_os("SCCACHE_PATH").unwrap();
21 let mut cmd = Command::new(&sccache_path);
22 cmd.arg(compiler.path());
23 for &(ref k, ref v) in compiler.env() {
24 cmd.env(k, v);
25 }
26 for arg in env::args().skip(1) {
27 cmd.arg(arg);
28 }
29
94b46f34
XL
30 if let Ok(s) = env::var("SCCACHE_EXTRA_ARGS") {
31 for s in s.split_whitespace() {
32 cmd.arg(s);
33 }
34 }
35
7cac9316
XL
36 let status = cmd.status().expect("failed to spawn");
37 process::exit(status.code().unwrap_or(2))
38}