Skip to content

Commit 0aacb5e

Browse files
committed
spirv-builder: cleanup build_script.env_shader_spv_path implementation
1 parent 1107a11 commit 0aacb5e

File tree

1 file changed

+14
-20
lines changed
  • crates/spirv-builder/src

1 file changed

+14
-20
lines changed

crates/spirv-builder/src/lib.rs

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -757,24 +757,22 @@ impl SpirvBuilder {
757757
let metadata: CompileResult =
758758
rustc_codegen_spirv_types::serde_json::from_reader(BufReader::new(metadata_contents))
759759
.map_err(SpirvBuilderError::MetadataFileMalformed)?;
760-
match &metadata.module {
761-
ModuleResult::SingleModule(spirv_module) => {
762-
assert!(!self.multimodule);
763-
if self.build_script.get_env_shader_spv_path() {
764-
let env_var = format!(
765-
"{}.spv",
766-
at.file_name()
767-
.unwrap()
768-
.to_str()
769-
.unwrap()
770-
.strip_suffix(ARTIFACT_SUFFIX)
771-
.unwrap()
772-
);
760+
761+
let is_multimodule = match &metadata.module {
762+
ModuleResult::SingleModule(_) => false,
763+
ModuleResult::MultiModule(_) => true,
764+
};
765+
assert_eq!(self.multimodule, is_multimodule);
766+
767+
if self.build_script.get_env_shader_spv_path() {
768+
match &metadata.module {
769+
ModuleResult::SingleModule(spirv_module) => {
770+
let env_var = spirv_module.file_name().unwrap().to_str().unwrap();
773771
println!("cargo::rustc-env={}={}", env_var, spirv_module.display());
774772
}
775-
}
776-
ModuleResult::MultiModule(_) => {
777-
assert!(self.multimodule);
773+
ModuleResult::MultiModule(_) => {
774+
Err(SpirvBuilderError::MultiModuleWithEnvShaderSpvPath)?;
775+
}
778776
}
779777
}
780778
Ok(metadata)
@@ -849,10 +847,6 @@ fn invoke_rustc(builder: &SpirvBuilder) -> Result<RustcOutput, SpirvBuilderError
849847
.as_ref()
850848
.ok_or(SpirvBuilderError::MissingTarget)?;
851849
target = SpirvTarget::parse(target_str)?;
852-
853-
if builder.build_script.get_env_shader_spv_path() && builder.multimodule {
854-
return Err(SpirvBuilderError::MultiModuleWithEnvShaderSpvPath);
855-
}
856850
if !path_to_crate.is_dir() {
857851
return Err(SpirvBuilderError::CratePathDoesntExist(
858852
path_to_crate.clone(),

0 commit comments

Comments
 (0)