Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
1b7b2fe3
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1b7b2fe3
编写于
11月 24, 2015
作者:
B
Brian Anderson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove RUST_PATH from compiler
This was to support rustpkg but is unused now.
上级
00aa3cbe
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
4 addition
and
98 deletion
+4
-98
src/librustc/metadata/filesearch.rs
src/librustc/metadata/filesearch.rs
+4
-95
src/librustc_trans/back/link.rs
src/librustc_trans/back/link.rs
+0
-3
未找到文件。
src/librustc/metadata/filesearch.rs
浏览文件 @
1b7b2fe3
...
...
@@ -40,16 +40,12 @@ pub struct FileSearch<'a> {
impl
<
'a
>
FileSearch
<
'a
>
{
pub
fn
for_each_lib_search_path
<
F
>
(
&
self
,
mut
f
:
F
)
where
F
:
FnMut
(
&
Path
,
PathKind
)
->
FileMatch
,
F
:
FnMut
(
&
Path
,
PathKind
)
{
let
mut
visited_dirs
=
HashSet
::
new
();
let
mut
found
=
false
;
for
(
path
,
kind
)
in
self
.search_paths
.iter
(
self
.kind
)
{
match
f
(
path
,
kind
)
{
FileMatches
=>
found
=
true
,
FileDoesntMatch
=>
()
}
f
(
path
,
kind
);
visited_dirs
.insert
(
path
.to_path_buf
());
}
...
...
@@ -57,35 +53,10 @@ pub fn for_each_lib_search_path<F>(&self, mut f: F) where
let
tlib_path
=
make_target_lib_path
(
self
.sysroot
,
self
.triple
);
if
!
visited_dirs
.contains
(
&
tlib_path
)
{
match
f
(
&
tlib_path
,
PathKind
::
All
)
{
FileMatches
=>
found
=
true
,
FileDoesntMatch
=>
()
}
f
(
&
tlib_path
,
PathKind
::
All
);
}
visited_dirs
.insert
(
tlib_path
);
// Try RUST_PATH
if
!
found
{
let
rustpath
=
rust_path
();
for
path
in
&
rustpath
{
let
tlib_path
=
make_rustpkg_lib_path
(
self
.sysroot
,
path
,
self
.triple
);
debug!
(
"is {} in visited_dirs? {}"
,
tlib_path
.display
(),
visited_dirs
.contains
(
&
tlib_path
));
if
!
visited_dirs
.contains
(
&
tlib_path
)
{
visited_dirs
.insert
(
tlib_path
.clone
());
// Don't keep searching the RUST_PATH if one match turns up --
// if we did, we'd get a "multiple matching crates" error
match
f
(
&
tlib_path
,
PathKind
::
All
)
{
FileMatches
=>
{
break
;
}
FileDoesntMatch
=>
()
}
}
}
}
}
pub
fn
get_lib_path
(
&
self
)
->
PathBuf
{
...
...
@@ -101,7 +72,6 @@ pub fn search<F>(&self, mut pick: F)
Ok
(
files
)
=>
{
let
files
=
files
.filter_map
(|
p
|
p
.ok
()
.map
(|
s
|
s
.path
()))
.collect
::
<
Vec
<
_
>>
();
let
mut
rslt
=
FileDoesntMatch
;
fn
is_rlib
(
p
:
&
Path
)
->
bool
{
p
.extension
()
.and_then
(|
s
|
s
.to_str
())
==
Some
(
"rlib"
)
}
...
...
@@ -117,16 +87,14 @@ fn is_rlib(p: &Path) -> bool {
match
maybe_picked
{
FileMatches
=>
{
debug!
(
"picked {}"
,
path
.display
());
rslt
=
FileMatches
;
}
FileDoesntMatch
=>
{
debug!
(
"rejected {}"
,
path
.display
());
}
}
}
rslt
}
Err
(
..
)
=>
FileDoesntMatch
,
Err
(
..
)
=>
()
,
}
});
}
...
...
@@ -149,7 +117,6 @@ pub fn get_dylib_search_paths(&self) -> Vec<PathBuf> {
let
mut
paths
=
Vec
::
new
();
self
.for_each_lib_search_path
(|
lib_search_path
,
_
|
{
paths
.push
(
lib_search_path
.to_path_buf
());
FileDoesntMatch
});
paths
}
...
...
@@ -179,14 +146,6 @@ fn make_target_lib_path(sysroot: &Path,
sysroot
.join
(
&
relative_target_lib_path
(
sysroot
,
target_triple
))
}
fn
make_rustpkg_lib_path
(
sysroot
:
&
Path
,
dir
:
&
Path
,
triple
:
&
str
)
->
PathBuf
{
let
mut
p
=
dir
.join
(
&
find_libdir
(
sysroot
));
p
.push
(
triple
);
p
}
pub
fn
get_or_default_sysroot
()
->
PathBuf
{
// Follow symlinks. If the resolved path is relative, make it absolute.
fn
canonicalize
(
path
:
Option
<
PathBuf
>
)
->
Option
<
PathBuf
>
{
...
...
@@ -207,56 +166,6 @@ fn canonicalize(path: Option<PathBuf>) -> Option<PathBuf> {
}
}
#[cfg(windows)]
const
PATH_ENTRY_SEPARATOR
:
char
=
';'
;
#[cfg(not(windows))]
const
PATH_ENTRY_SEPARATOR
:
char
=
':'
;
/// Returns RUST_PATH as a string, without default paths added
pub
fn
get_rust_path
()
->
Option
<
String
>
{
env
::
var
(
"RUST_PATH"
)
.ok
()
}
/// Returns the value of RUST_PATH, as a list
/// of Paths. Includes default entries for, if they exist:
/// $HOME/.rust
/// DIR/.rust for any DIR that's the current working directory
/// or an ancestor of it
pub
fn
rust_path
()
->
Vec
<
PathBuf
>
{
let
mut
env_rust_path
:
Vec
<
PathBuf
>
=
match
get_rust_path
()
{
Some
(
env_path
)
=>
{
let
env_path_components
=
env_path
.split
(
PATH_ENTRY_SEPARATOR
);
env_path_components
.map
(|
s
|
PathBuf
::
from
(
s
))
.collect
()
}
None
=>
Vec
::
new
()
};
let
cwd
=
env
::
current_dir
()
.unwrap
();
// now add in default entries
let
cwd_dot_rust
=
cwd
.join
(
".rust"
);
if
!
env_rust_path
.contains
(
&
cwd_dot_rust
)
{
env_rust_path
.push
(
cwd_dot_rust
);
}
if
!
env_rust_path
.contains
(
&
cwd
)
{
env_rust_path
.push
(
cwd
.clone
());
}
let
mut
cur
=
&*
cwd
;
while
let
Some
(
parent
)
=
cur
.parent
()
{
let
candidate
=
parent
.join
(
".rust"
);
if
!
env_rust_path
.contains
(
&
candidate
)
&&
candidate
.exists
()
{
env_rust_path
.push
(
candidate
.clone
());
}
cur
=
parent
;
}
if
let
Some
(
h
)
=
env
::
home_dir
()
{
let
p
=
h
.join
(
".rust"
);
if
!
env_rust_path
.contains
(
&
p
)
&&
p
.exists
()
{
env_rust_path
.push
(
p
);
}
}
env_rust_path
}
// The name of the directory rustc expects libraries to be located.
fn
find_libdir
(
sysroot
:
&
Path
)
->
String
{
// FIXME: This is a quick hack to make the rustc binary able to locate
...
...
src/librustc_trans/back/link.rs
浏览文件 @
1b7b2fe3
...
...
@@ -20,7 +20,6 @@
use
session
::
search_paths
::
PathKind
;
use
session
::
Session
;
use
metadata
::
common
::
LinkMeta
;
use
metadata
::
filesearch
::
FileDoesntMatch
;
use
metadata
::
loader
::
METADATA_FILENAME
;
use
metadata
::{
encoder
,
cstore
,
filesearch
,
csearch
,
creader
};
use
middle
::
dependency_format
::
Linkage
;
...
...
@@ -588,7 +587,6 @@ fn archive_search_paths(sess: &Session) -> Vec<PathBuf> {
let
mut
search
=
Vec
::
new
();
sess
.target_filesearch
(
PathKind
::
Native
)
.for_each_lib_search_path
(|
path
,
_
|
{
search
.push
(
path
.to_path_buf
());
FileDoesntMatch
});
return
search
;
}
...
...
@@ -1085,7 +1083,6 @@ fn add_local_native_libraries(cmd: &mut Linker, sess: &Session) {
PathKind
::
Framework
=>
{
cmd
.framework_path
(
path
);
}
_
=>
{
cmd
.include_path
(
&
fix_windows_verbatim_for_gcc
(
path
));
}
}
FileDoesntMatch
});
let
libs
=
sess
.cstore
.get_used_libraries
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录