@@ -506,19 +506,8 @@ pub fn try_build(attributes: Attributes) -> Result<()> {
506506
507507 cfg_alias ( "dev" , is_dev ( ) ) ;
508508
509- let ws_path = get_workspace_dir ( ) ?;
510- let mut manifest =
511- Manifest :: < cargo_toml:: Value > :: from_slice_with_metadata ( & fs:: read ( "Cargo.toml" ) ?) ?;
512-
513- if let Ok ( ws_manifest) = Manifest :: from_path ( ws_path. join ( "Cargo.toml" ) ) {
514- Manifest :: complete_from_path_and_workspace (
515- & mut manifest,
516- Path :: new ( "Cargo.toml" ) ,
517- Some ( ( & ws_manifest, ws_path. as_path ( ) ) ) ,
518- ) ?;
519- } else {
520- Manifest :: complete_from_path ( & mut manifest, Path :: new ( "Cargo.toml" ) ) ?;
521- }
509+ let cargo_toml_path = Path :: new ( "Cargo.toml" ) . canonicalize ( ) ?;
510+ let mut manifest = Manifest :: < cargo_toml:: Value > :: from_path_with_metadata ( cargo_toml_path) ?;
522511
523512 let out_dir = PathBuf :: from ( env:: var ( "OUT_DIR" ) . unwrap ( ) ) ;
524513
@@ -701,23 +690,3 @@ pub fn try_build(attributes: Attributes) -> Result<()> {
701690
702691 Ok ( ( ) )
703692}
704-
705- #[ derive( serde:: Deserialize ) ]
706- struct CargoMetadata {
707- workspace_root : PathBuf ,
708- }
709-
710- fn get_workspace_dir ( ) -> Result < PathBuf > {
711- let output = std:: process:: Command :: new ( "cargo" )
712- . args ( [ "metadata" , "--no-deps" , "--format-version" , "1" ] )
713- . output ( ) ?;
714-
715- if !output. status . success ( ) {
716- return Err ( anyhow:: anyhow!(
717- "cargo metadata command exited with a non zero exit code: {}" ,
718- String :: from_utf8( output. stderr) ?
719- ) ) ;
720- }
721-
722- Ok ( serde_json:: from_slice :: < CargoMetadata > ( & output. stdout ) ?. workspace_root )
723- }
0 commit comments