File tree Expand file tree Collapse file tree 3 files changed +30
-9
lines changed
Expand file tree Collapse file tree 3 files changed +30
-9
lines changed Original file line number Diff line number Diff line change 11---
2- refs/heads/master: 54cf0e9c0d1151f82e86cab5488162bd7e0706a2
2+ refs/heads/master: e746ed68809c68ae32e5864b5aded37564a38f27
Original file line number Diff line number Diff line change 55
66import rustc:: syntax:: { ast, codemap, visit} ;
77import rustc:: syntax:: parse:: parser;
8+ import rustc:: util:: filesearch:: get_cargo_root;
89
910import std:: fs;
1011import std:: generic_os;
@@ -300,14 +301,9 @@ fn load_source_packages(&c: cargo, &src: source) {
300301}
301302
302303fn 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 }
311307 } ;
312308
313309 let sources = map:: new_str_hash :: < source > ( ) ;
Original file line number Diff line number Diff line change @@ -6,13 +6,16 @@ import core::option;
66import std:: fs;
77import vec;
88import std:: os;
9+ import result;
10+ import std:: generic_os;
911
1012export filesearch;
1113export mk_filesearch;
1214export pick;
1315export pick_file;
1416export search;
1517export relative_target_lib_path;
18+ export get_cargo_root;
1619
1720type pick < T > = block ( path : fs:: path ) -> option:: t < T > ;
1821
@@ -38,6 +41,10 @@ fn mk_filesearch(maybe_sysroot: option::t<fs::path>,
3841 fn lib_search_paths ( ) -> [ fs:: path ] {
3942 addl_lib_search_paths
4043 + [ make_target_lib_path ( sysroot, target_triple) ]
44+ + alt get_cargo_lib_path ( ) {
45+ result:: ok ( p) { [ p] }
46+ result:: err ( p) { [ ] }
47+ }
4148 }
4249
4350 fn get_target_lib_path ( ) -> fs:: path {
@@ -99,3 +106,21 @@ fn get_sysroot(maybe_sysroot: option::t<fs::path>) -> fs::path {
99106 option:: none. { get_default_sysroot ( ) }
100107 }
101108}
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