1
1
use std:: env;
2
- use std:: ffi:: OsStr ;
3
2
use std:: hash:: { Hash , Hasher } ;
4
3
use std:: path:: { Path , PathBuf } ;
5
4
use std:: process:: Command ;
@@ -8,7 +7,6 @@ pub use rustc_version::version_meta as version;
8
7
9
8
use serde_json;
10
9
use serde_json:: Value ;
11
- use walkdir:: WalkDir ;
12
10
13
11
use errors:: * ;
14
12
use extensions:: CommandExt ;
@@ -65,38 +63,17 @@ impl Sysroot {
65
63
& self . path
66
64
}
67
65
68
- /// Returns the path to Rust source, `$SRC`, where `$SRC/libstd/Carg .toml`
66
+ /// Returns the path to Rust source, `$SRC`, where `$SRC/std/Cargo .toml`
69
67
/// exists
70
68
pub fn src ( & self ) -> Result < Src > {
71
69
let src = self . path ( ) . join ( "lib" ) . join ( "rustlib" ) . join ( "src" ) ;
72
70
73
- if src. join ( "rust/src/libstd /Cargo.toml" ) . is_file ( ) {
71
+ if src. join ( "rust/library/std /Cargo.toml" ) . is_file ( ) {
74
72
return Ok ( Src {
75
- path : src. join ( "rust/src " ) ,
73
+ path : src. join ( "rust/library " ) ,
76
74
} ) ;
77
75
}
78
76
79
- if src. exists ( ) {
80
- for e in WalkDir :: new ( src) {
81
- let e = e. chain_err ( || "couldn't walk the sysroot" ) ?;
82
-
83
- // Looking for $SRC/libstd/Cargo.toml
84
- if e. file_type ( ) . is_file ( ) && e. file_name ( ) == "Cargo.toml" {
85
- let toml = e. path ( ) ;
86
-
87
- if let Some ( std) = toml. parent ( ) {
88
- if let Some ( src) = std. parent ( ) {
89
- if std. file_name ( ) == Some ( OsStr :: new ( "libstd" ) ) {
90
- return Ok ( Src {
91
- path : src. to_owned ( ) ,
92
- } ) ;
93
- }
94
- }
95
- }
96
- }
97
- }
98
- }
99
-
100
77
Err ( "`rust-src` component not found. Run `rustup component add \
101
78
rust-src`.") ?
102
79
}
0 commit comments