@@ -102,6 +102,11 @@ enum EnvironmentCmd {
102102 /// Will be LLVM built during the run?
103103 #[ arg( long, default_value_t = true , action( clap:: ArgAction :: Set ) ) ]
104104 build_llvm : bool ,
105+
106+ /// Set build artifacts dir. Relative to `checkout_dir`, should point to the directory set
107+ /// in bootstrap.toml via `build.build-dir` option
108+ #[ arg( long, default_value = "build" ) ]
109+ build_dir : Utf8PathBuf ,
105110 } ,
106111 /// Perform an optimized build on Linux CI, from inside Docker.
107112 LinuxCi {
@@ -138,14 +143,15 @@ fn create_environment(args: Args) -> anyhow::Result<(Environment, Vec<String>)>
138143 shared,
139144 run_tests,
140145 build_llvm,
146+ build_dir,
141147 } => {
142148 let env = EnvironmentBuilder :: default ( )
143149 . host_tuple ( target_triple)
144150 . python_binary ( python)
145151 . checkout_dir ( checkout_dir. clone ( ) )
146152 . host_llvm_dir ( llvm_dir)
147153 . artifact_dir ( artifact_dir)
148- . build_dir ( checkout_dir)
154+ . build_dir ( checkout_dir. join ( build_dir ) )
149155 . prebuilt_rustc_perf ( rustc_perf_checkout_dir)
150156 . shared_llvm ( llvm_shared)
151157 . use_bolt ( use_bolt)
@@ -171,7 +177,7 @@ fn create_environment(args: Args) -> anyhow::Result<(Environment, Vec<String>)>
171177 . checkout_dir ( checkout_dir. clone ( ) )
172178 . host_llvm_dir ( Utf8PathBuf :: from ( "/rustroot" ) )
173179 . artifact_dir ( Utf8PathBuf :: from ( "/tmp/tmp-multistage/opt-artifacts" ) )
174- . build_dir ( checkout_dir. join ( "obj" ) )
180+ . build_dir ( checkout_dir. join ( "obj" ) . join ( "build" ) )
175181 . shared_llvm ( true )
176182 // FIXME: Enable bolt for aarch64 once it's fixed upstream. Broken as of December 2024.
177183 . use_bolt ( !is_aarch64)
@@ -194,7 +200,7 @@ fn create_environment(args: Args) -> anyhow::Result<(Environment, Vec<String>)>
194200 . checkout_dir ( checkout_dir. clone ( ) )
195201 . host_llvm_dir ( checkout_dir. join ( "citools" ) . join ( "clang-rust" ) )
196202 . artifact_dir ( checkout_dir. join ( "opt-artifacts" ) )
197- . build_dir ( checkout_dir)
203+ . build_dir ( checkout_dir. join ( "build" ) )
198204 . shared_llvm ( false )
199205 . use_bolt ( false )
200206 . skipped_tests ( vec ! [ ] )
0 commit comments