Skip to content

Commit 81d2ec3

Browse files
committed
dylib: allow setting cargo <cmd> dynamically
1 parent 6fb8750 commit 81d2ec3

File tree

1 file changed

+9
-3
lines changed
  • crates/spirv-builder/src

1 file changed

+9
-3
lines changed

crates/spirv-builder/src/lib.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -400,8 +400,12 @@ impl Default for ShaderCrateFeatures {
400400
#[cfg_attr(feature = "clap", derive(clap::Parser))]
401401
#[non_exhaustive]
402402
pub struct SpirvBuilder {
403+
/// The path to the shader crate to compile
403404
#[cfg_attr(feature = "clap", clap(skip))]
404405
pub path_to_crate: Option<PathBuf>,
406+
/// The cargo command to run, formatted like `cargo {cargo_cmd} ...`. Defaults to `build`.
407+
#[cfg_attr(feature = "clap", clap(skip))]
408+
pub cargo_cmd: Option<String>,
405409
/// Whether to print build.rs cargo metadata (e.g. cargo:rustc-env=var=val). Defaults to [`MetadataPrintout::None`].
406410
/// Within build scripts, set it to [`MetadataPrintout::DependencyOnly`] or [`MetadataPrintout::Full`] to ensure the build script is rerun on code changes.
407411
#[cfg_attr(feature = "clap", clap(skip))]
@@ -497,6 +501,7 @@ impl Default for SpirvBuilder {
497501
fn default() -> Self {
498502
Self {
499503
path_to_crate: None,
504+
cargo_cmd: None,
500505
print_metadata: MetadataPrintout::default(),
501506
release: true,
502507
target: None,
@@ -995,14 +1000,15 @@ fn invoke_rustc(builder: &SpirvBuilder) -> Result<PathBuf, SpirvBuilderError> {
9951000
.join(target_dir_path)
9961001
};
9971002

998-
let profile = if builder.release { "release" } else { "dev" };
999-
10001003
let mut cargo = cargo_cmd::CargoCmd::new();
10011004
if let Some(toolchain) = &builder.toolchain_overwrite {
10021005
cargo.arg(format!("+{toolchain}"));
10031006
}
1007+
1008+
let cargo_cmd = builder.cargo_cmd.as_ref().map_or("build", |s| s.as_str());
1009+
let profile = if builder.release { "release" } else { "dev" };
10041010
cargo.args([
1005-
"build",
1011+
cargo_cmd,
10061012
"--lib",
10071013
"--message-format=json-render-diagnostics",
10081014
"-Zbuild-std=core",

0 commit comments

Comments
 (0)