Skip to content

Commit 436846c

Browse files
committed
compile_codegen: add SpirvBuilder.toolchain_overwrite
1 parent aed816d commit 436846c

File tree

1 file changed

+7
-1
lines changed
  • crates/spirv-builder/src

1 file changed

+7
-1
lines changed

crates/spirv-builder/src/lib.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,9 @@ pub struct SpirvBuilder {
398398
// Location of a known `rustc_codegen_spirv` dylib, only required without feature `rustc_codegen_spirv`.
399399
#[cfg_attr(feature = "clap", clap(skip))]
400400
pub rustc_codegen_spirv_location: Option<PathBuf>,
401+
// Overwrite the toolchain like `cargo +nightly`
402+
#[cfg_attr(feature = "clap", clap(skip))]
403+
pub toolchain_overwrite: Option<String>,
401404

402405
/// The path of the "target specification" file.
403406
///
@@ -454,7 +457,7 @@ impl Default for SpirvBuilder {
454457
rustc_codegen_spirv_location: None,
455458
path_to_target_spec: None,
456459
target_dir_path: None,
457-
460+
toolchain_overwrite: None,
458461
shader_panic_strategy: ShaderPanicStrategy::default(),
459462
validator: ValidatorOptions::default(),
460463
optimizer: OptimizerOptions::default(),
@@ -934,6 +937,9 @@ fn invoke_rustc(builder: &SpirvBuilder) -> Result<PathBuf, SpirvBuilderError> {
934937
let profile = if builder.release { "release" } else { "dev" };
935938

936939
let mut cargo = Command::new("cargo");
940+
if let Some(toolchain) = &builder.toolchain_overwrite {
941+
cargo.arg(format!("+{}", toolchain));
942+
}
937943
cargo.args([
938944
"build",
939945
"--lib",

0 commit comments

Comments
 (0)