diff options
| author | Mark Rousskov <mark.simulacrum@gmail.com> | 2018-08-03 07:22:42 -0600 |
|---|---|---|
| committer | Mark Rousskov <mark.simulacrum@gmail.com> | 2018-08-06 07:00:34 -0600 |
| commit | d8e8a50cf279eab794adbdd9bae819d308a6169f (patch) | |
| tree | 11aaf6b11509d625dab0e5588deba397e75c02af /src/bootstrap | |
| parent | 73c78734bae8f2947a4bfdeabebeeb84ccf0b0e1 (diff) | |
| download | rust-d8e8a50cf279eab794adbdd9bae819d308a6169f.tar.gz rust-d8e8a50cf279eab794adbdd9bae819d308a6169f.zip | |
Building librustc_codegen_llvm in a separate directory
This allows clearing it out and building it separately from the compiler. Since it's essentially a different and separate crate this makes sense to do, each cargo invocation should generally happen in its own directory.
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/check.rs | 6 | ||||
| -rw-r--r-- | src/bootstrap/compile.rs | 9 | ||||
| -rw-r--r-- | src/bootstrap/lib.rs | 2 |
3 files changed, 10 insertions, 7 deletions
diff --git a/src/bootstrap/check.rs b/src/bootstrap/check.rs index 2f0ae7d9d2c..133e5aa37a7 100644 --- a/src/bootstrap/check.rs +++ b/src/bootstrap/check.rs @@ -137,8 +137,10 @@ impl Step for CodegenBackend { let target = self.target; let backend = self.backend; + let out_dir = builder.cargo_out(compiler, Mode::Codegen, target); + builder.clear_if_dirty(&out_dir, &librustc_stamp(builder, compiler, target)); + let mut cargo = builder.cargo(compiler, Mode::Codegen, target, "check"); - let features = builder.rustc_features().to_string(); cargo.arg("--manifest-path").arg(builder.src.join("src/librustc_codegen_llvm/Cargo.toml")); rustc_cargo_env(builder, &mut cargo); @@ -146,7 +148,7 @@ impl Step for CodegenBackend { let _folder = builder.fold_output(|| format!("stage{}-rustc_codegen_llvm", compiler.stage)); run_cargo(builder, - cargo.arg("--features").arg(features), + &mut cargo, &codegen_backend_stamp(builder, compiler, target, backend), true); } diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs index 8c4f2df60fe..2f8816d111a 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs @@ -670,16 +670,17 @@ impl Step for CodegenBackend { return; } + let out_dir = builder.cargo_out(compiler, Mode::Codegen, target); + builder.clear_if_dirty(&out_dir, &librustc_stamp(builder, compiler, target)); + let mut cargo = builder.cargo(compiler, Mode::Codegen, target, "build"); - let mut features = builder.rustc_features().to_string(); cargo.arg("--manifest-path") .arg(builder.src.join("src/librustc_codegen_llvm/Cargo.toml")); rustc_cargo_env(builder, &mut cargo); - features += &build_codegen_backend(&builder, &mut cargo, &compiler, target, backend); + let features = build_codegen_backend(&builder, &mut cargo, &compiler, target, backend); - let tmp_stamp = builder.cargo_out(compiler, Mode::Codegen, target) - .join(".tmp.stamp"); + let tmp_stamp = out_dir.join(".tmp.stamp"); let _folder = builder.fold_output(|| format!("stage{}-rustc_codegen_llvm", compiler.stage)); let files = run_cargo(builder, diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index 1efff19dfb9..38965949bf2 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -555,8 +555,8 @@ impl Build { let suffix = match mode { Mode::Std => "-std", Mode::Test => "-test", - Mode::Codegen => "-rustc", Mode::Rustc => "-rustc", + Mode::Codegen => "-codegen", Mode::ToolBootstrap => "-bootstrap-tools", Mode::ToolStd => "-tools", Mode::ToolRustc => "-tools", |
