@@ -99,8 +99,6 @@ pub use rustc_codegen_spirv_target_specs::TARGET_SPEC_DIR_PATH;
99
99
pub enum SpirvBuilderError {
100
100
#[ error( "`target` must be set, for example `spirv-unknown-vulkan1.2`" ) ]
101
101
MissingTarget ,
102
- #[ error( "Error parsing target: {0}" ) ]
103
- SpirvTargetParseError ( #[ from] SpirvTargetParseError ) ,
104
102
#[ error( "`path_to_crate` must be set" ) ]
105
103
MissingCratePath ,
106
104
#[ error( "crate path '{0}' does not exist" ) ]
@@ -378,9 +376,13 @@ pub struct SpirvBuilder {
378
376
/// The target triple, eg. `spirv-unknown-vulkan1.2`
379
377
#[ cfg_attr(
380
378
feature = "clap" ,
381
- clap( long, default_value = "spirv-unknown-vulkan1.2" )
379
+ clap(
380
+ long,
381
+ default_value = "spirv-unknown-vulkan1.2" ,
382
+ value_parser = SpirvTargetEnv :: parse_triple
383
+ )
382
384
) ]
383
- pub target : Option < String > ,
385
+ pub target : Option < SpirvTargetEnv > ,
384
386
/// Cargo features specification for building the shader crate.
385
387
#[ cfg_attr( feature = "clap" , clap( flatten) ) ]
386
388
#[ serde( flatten) ]
@@ -486,7 +488,7 @@ impl Default for SpirvBuilder {
486
488
}
487
489
488
490
impl SpirvBuilder {
489
- pub fn new ( path_to_crate : impl AsRef < Path > , target : impl Into < String > ) -> Self {
491
+ pub fn new ( path_to_crate : impl AsRef < Path > , target : impl Into < SpirvTargetEnv > ) -> Self {
490
492
Self {
491
493
path_to_crate : Some ( path_to_crate. as_ref ( ) . to_owned ( ) ) ,
492
494
target : Some ( target. into ( ) ) ,
@@ -756,11 +758,7 @@ fn join_checking_for_separators(strings: Vec<impl Borrow<str>>, sep: &str) -> St
756
758
757
759
// Returns path to the metadata json.
758
760
fn invoke_rustc ( builder : & SpirvBuilder ) -> Result < PathBuf , SpirvBuilderError > {
759
- let target = builder
760
- . target
761
- . as_ref ( )
762
- . ok_or ( SpirvBuilderError :: MissingTarget ) ?;
763
- let target = SpirvTargetEnv :: parse_triple ( target) ?;
761
+ let target = builder. target . ok_or ( SpirvBuilderError :: MissingTarget ) ?;
764
762
let path_to_crate = builder
765
763
. path_to_crate
766
764
. as_ref ( )
0 commit comments