Skip to content

Commit d99ca9a

Browse files
committed
spirv-builder: cleanup build_script.env_shader_spv_path implementation
1 parent 90a8798 commit d99ca9a

1 file changed

Lines changed: 14 additions & 20 deletions

File tree

  • crates/spirv-builder/src

crates/spirv-builder/src/lib.rs

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -758,24 +758,22 @@ impl SpirvBuilder {
758758
let metadata: CompileResult =
759759
rustc_codegen_spirv_types::serde_json::from_reader(BufReader::new(metadata_contents))
760760
.map_err(SpirvBuilderError::MetadataFileMalformed)?;
761-
match &metadata.module {
762-
ModuleResult::SingleModule(spirv_module) => {
763-
assert!(!self.multimodule);
764-
if self.build_script.get_env_shader_spv_path() {
765-
let env_var = format!(
766-
"{}.spv",
767-
at.file_name()
768-
.unwrap()
769-
.to_str()
770-
.unwrap()
771-
.strip_suffix(ARTIFACT_SUFFIX)
772-
.unwrap()
773-
);
761+
762+
let is_multimodule = match &metadata.module {
763+
ModuleResult::SingleModule(_) => false,
764+
ModuleResult::MultiModule(_) => true,
765+
};
766+
assert_eq!(self.multimodule, is_multimodule);
767+
768+
if self.build_script.get_env_shader_spv_path() {
769+
match &metadata.module {
770+
ModuleResult::SingleModule(spirv_module) => {
771+
let env_var = spirv_module.file_name().unwrap().to_str().unwrap();
774772
println!("cargo::rustc-env={}={}", env_var, spirv_module.display());
775773
}
776-
}
777-
ModuleResult::MultiModule(_) => {
778-
assert!(self.multimodule);
774+
ModuleResult::MultiModule(_) => {
775+
Err(SpirvBuilderError::MultiModuleWithEnvShaderSpvPath)?;
776+
}
779777
}
780778
}
781779
Ok(metadata)
@@ -901,10 +899,6 @@ fn invoke_rustc(builder: &SpirvBuilder) -> Result<RustcOutput, SpirvBuilderError
901899
.as_ref()
902900
.ok_or(SpirvBuilderError::MissingTarget)?;
903901
target = SpirvTarget::parse(target_str)?;
904-
905-
if builder.build_script.get_env_shader_spv_path() && builder.multimodule {
906-
return Err(SpirvBuilderError::MultiModuleWithEnvShaderSpvPath);
907-
}
908902
if !path_to_crate.is_dir() {
909903
return Err(SpirvBuilderError::CratePathDoesntExist(
910904
path_to_crate.clone(),

0 commit comments

Comments
 (0)