File tree 3 files changed +30
-9
lines changed
3 files changed +30
-9
lines changed Original file line number Diff line number Diff line change 1
1
---
2
- refs/heads/master: 54cf0e9c0d1151f82e86cab5488162bd7e0706a2
2
+ refs/heads/master: e746ed68809c68ae32e5864b5aded37564a38f27
Original file line number Diff line number Diff line change 5
5
6
6
import rustc:: syntax:: { ast, codemap, visit} ;
7
7
import rustc:: syntax:: parse:: parser;
8
+ import rustc:: util:: filesearch:: get_cargo_root;
8
9
9
10
import std:: fs;
10
11
import std:: generic_os;
@@ -300,14 +301,9 @@ fn load_source_packages(&c: cargo, &src: source) {
300
301
}
301
302
302
303
fn configure ( ) -> cargo {
303
- let p = alt generic_os:: getenv ( "CARGO_ROOT" ) {
304
- some ( _p) { _p }
305
- none. {
306
- alt generic_os :: getenv( "HOME" ) {
307
- some ( _q) { fs:: connect ( _q, ".cargo" ) }
308
- none. { fail "no CARGO_ROOT or HOME" ; }
309
- }
310
- }
304
+ let p = alt get_cargo_root ( ) {
305
+ result:: ok ( p) { p }
306
+ result:: err ( e) { fail e }
311
307
} ;
312
308
313
309
let sources = map:: new_str_hash :: < source > ( ) ;
Original file line number Diff line number Diff line change @@ -6,13 +6,16 @@ import core::option;
6
6
import std:: fs;
7
7
import vec;
8
8
import std:: os;
9
+ import result;
10
+ import std:: generic_os;
9
11
10
12
export filesearch;
11
13
export mk_filesearch;
12
14
export pick;
13
15
export pick_file;
14
16
export search;
15
17
export relative_target_lib_path;
18
+ export get_cargo_root;
16
19
17
20
type pick < T > = block ( path : fs:: path ) -> option:: t < T > ;
18
21
@@ -38,6 +41,10 @@ fn mk_filesearch(maybe_sysroot: option::t<fs::path>,
38
41
fn lib_search_paths ( ) -> [ fs:: path ] {
39
42
addl_lib_search_paths
40
43
+ [ make_target_lib_path ( sysroot, target_triple) ]
44
+ + alt get_cargo_lib_path ( ) {
45
+ result:: ok ( p) { [ p] }
46
+ result:: err ( p) { [ ] }
47
+ }
41
48
}
42
49
43
50
fn get_target_lib_path ( ) -> fs:: path {
@@ -99,3 +106,21 @@ fn get_sysroot(maybe_sysroot: option::t<fs::path>) -> fs::path {
99
106
option:: none. { get_default_sysroot ( ) }
100
107
}
101
108
}
109
+
110
+ fn get_cargo_root ( ) -> result:: t < fs:: path , str > {
111
+ alt generic_os:: getenv ( "CARGO_ROOT" ) {
112
+ some ( _p) { result:: ok ( _p) }
113
+ none. {
114
+ alt generic_os :: getenv( "HOME" ) {
115
+ some ( _q) { result:: ok ( fs:: connect ( _q, ".cargo" ) ) }
116
+ none. { result:: err ( "no CARGO_ROOT or HOME" ) }
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ fn get_cargo_lib_path ( ) -> result:: t < fs:: path , str > {
123
+ result:: chain ( get_cargo_root ( ) ) { |p|
124
+ result:: ok ( fs:: connect ( p, "lib" ) )
125
+ }
126
+ }
You can’t perform that action at this time.
0 commit comments