Skip to content

Commit 1dcf236

Browse files
committed
spirv-builder: cleanup build_script.env_shader_spv_path implementation
1 parent 5860edb commit 1dcf236

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
@@ -739,24 +739,22 @@ impl SpirvBuilder {
739739
let metadata: CompileResult =
740740
rustc_codegen_spirv_types::serde_json::from_reader(BufReader::new(metadata_contents))
741741
.map_err(SpirvBuilderError::MetadataFileMalformed)?;
742-
match &metadata.module {
743-
ModuleResult::SingleModule(spirv_module) => {
744-
assert!(!self.multimodule);
745-
if self.build_script.get_env_shader_spv_path() {
746-
let env_var = format!(
747-
"{}.spv",
748-
at.file_name()
749-
.unwrap()
750-
.to_str()
751-
.unwrap()
752-
.strip_suffix(ARTIFACT_SUFFIX)
753-
.unwrap()
754-
);
742+
743+
let is_multimodule = match &metadata.module {
744+
ModuleResult::SingleModule(_) => false,
745+
ModuleResult::MultiModule(_) => true,
746+
};
747+
assert_eq!(self.multimodule, is_multimodule);
748+
749+
if self.build_script.get_env_shader_spv_path() {
750+
match &metadata.module {
751+
ModuleResult::SingleModule(spirv_module) => {
752+
let env_var = spirv_module.file_name().unwrap().to_str().unwrap();
755753
println!("cargo::rustc-env={}={}", env_var, spirv_module.display());
756754
}
757-
}
758-
ModuleResult::MultiModule(_) => {
759-
assert!(self.multimodule);
755+
ModuleResult::MultiModule(_) => {
756+
Err(SpirvBuilderError::MultiModuleWithEnvShaderSpvPath)?;
757+
}
760758
}
761759
}
762760
Ok(metadata)
@@ -831,10 +829,6 @@ fn invoke_rustc(builder: &SpirvBuilder) -> Result<RustcOutput, SpirvBuilderError
831829
.as_ref()
832830
.ok_or(SpirvBuilderError::MissingTarget)?;
833831
target = SpirvTarget::parse(target_str)?;
834-
835-
if builder.build_script.get_env_shader_spv_path() && builder.multimodule {
836-
return Err(SpirvBuilderError::MultiModuleWithEnvShaderSpvPath);
837-
}
838832
if !path_to_crate.is_dir() {
839833
return Err(SpirvBuilderError::CratePathDoesntExist(
840834
path_to_crate.clone(),

0 commit comments

Comments
 (0)