Skip to content

Commit cb0ea9e

Browse files
committed
spirv-builder: cleanup build_script.env_shader_spv_path implementation
1 parent 1ac317b commit cb0ea9e

File tree

1 file changed

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

1 file changed

+20
-23
lines changed

crates/spirv-builder/src/lib.rs

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,20 @@ impl SpirvBuilder {
727727
println!("cargo:rerun-if-changed={dep}");
728728
}
729729
}
730+
if self.build_script.get_env_shader_spv_path() {
731+
match &out.compile_result.module {
732+
ModuleResult::SingleModule(spirv_module) => {
733+
let env_var = format!(
734+
"{}.spv",
735+
spirv_module.file_name().unwrap().to_str().unwrap()
736+
);
737+
println!("cargo::rustc-env={}={}", env_var, spirv_module.display());
738+
}
739+
ModuleResult::MultiModule(_) => {
740+
Err(SpirvBuilderError::MultiModuleWithEnvShaderSpvPath)?;
741+
}
742+
}
743+
}
730744
Ok(out.compile_result)
731745
}
732746

@@ -739,26 +753,13 @@ impl SpirvBuilder {
739753
let metadata: CompileResult =
740754
rustc_codegen_spirv_types::serde_json::from_reader(BufReader::new(metadata_contents))
741755
.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-
);
755-
println!("cargo::rustc-env={}={}", env_var, spirv_module.display());
756-
}
757-
}
758-
ModuleResult::MultiModule(_) => {
759-
assert!(self.multimodule);
756+
assert_eq!(
757+
self.multimodule,
758+
match &metadata.module {
759+
ModuleResult::SingleModule(_) => false,
760+
ModuleResult::MultiModule(_) => true,
760761
}
761-
}
762+
);
762763
Ok(metadata)
763764
}
764765
}
@@ -831,10 +832,6 @@ fn invoke_rustc(builder: &SpirvBuilder) -> Result<RustcOutput, SpirvBuilderError
831832
.as_ref()
832833
.ok_or(SpirvBuilderError::MissingTarget)?;
833834
target = SpirvTarget::parse(target_str)?;
834-
835-
if builder.build_script.get_env_shader_spv_path() && builder.multimodule {
836-
return Err(SpirvBuilderError::MultiModuleWithEnvShaderSpvPath);
837-
}
838835
if !path_to_crate.is_dir() {
839836
return Err(SpirvBuilderError::CratePathDoesntExist(
840837
path_to_crate.clone(),

0 commit comments

Comments
 (0)