Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
1075ced5
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,发现更多精彩内容 >>
提交
1075ced5
编写于
7月 23, 2018
作者:
T
Tatsuyuki Ishi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Discriminate between external and optional tools
上级
e0989859
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
22 addition
and
14 deletion
+22
-14
src/bootstrap/bin/rustc.rs
src/bootstrap/bin/rustc.rs
+2
-1
src/bootstrap/tool.rs
src/bootstrap/tool.rs
+20
-13
未找到文件。
src/bootstrap/bin/rustc.rs
浏览文件 @
1075ced5
...
...
@@ -296,7 +296,8 @@ fn main() {
cmd
.arg
(
"--color=always"
);
}
if
env
::
var_os
(
"RUSTC_DENY_WARNINGS"
)
.is_some
()
&&
env
::
var_os
(
"RUSTC_EXT_TOOL"
)
.is_none
()
{
if
env
::
var_os
(
"RUSTC_DENY_WARNINGS"
)
.is_some
()
&&
env
::
var_os
(
"RUSTC_EXTERNAL_TOOL"
)
.is_none
()
{
cmd
.arg
(
"-Dwarnings"
);
cmd
.arg
(
"-Dbare_trait_objects"
);
}
...
...
src/bootstrap/tool.rs
浏览文件 @
1075ced5
...
...
@@ -82,7 +82,8 @@ struct ToolBuild {
tool
:
&
'static
str
,
path
:
&
'static
str
,
mode
:
Mode
,
is_ext_tool
:
bool
,
is_optional_tool
:
bool
,
is_external_tool
:
bool
,
extra_features
:
Vec
<
String
>
,
}
...
...
@@ -102,7 +103,7 @@ fn run(self, builder: &Builder) -> Option<PathBuf> {
let
target
=
self
.target
;
let
tool
=
self
.tool
;
let
path
=
self
.path
;
let
is_
ext_tool
=
self
.is_ext
_tool
;
let
is_
optional_tool
=
self
.is_optional
_tool
;
match
self
.mode
{
Mode
::
ToolRustc
=>
{
...
...
@@ -122,7 +123,7 @@ fn run(self, builder: &Builder) -> Option<PathBuf> {
target
,
"build"
,
path
,
is_ext
_tool
,
self
.is_external
_tool
,
);
cargo
.arg
(
"--features"
)
.arg
(
self
.extra_features
.join
(
" "
));
...
...
@@ -224,7 +225,7 @@ fn run(self, builder: &Builder) -> Option<PathBuf> {
});
if
!
is_expected
{
if
!
is_
ext
_tool
{
if
!
is_
optional
_tool
{
exit
(
1
);
}
else
{
return
None
;
...
...
@@ -246,7 +247,7 @@ pub fn prepare_tool_cargo(
target
:
Interned
<
String
>
,
command
:
&
'static
str
,
path
:
&
'static
str
,
is_ext_tool
:
bool
,
is_ext
ernal
_tool
:
bool
,
)
->
Command
{
let
mut
cargo
=
builder
.cargo
(
compiler
,
mode
,
target
,
command
);
let
dir
=
builder
.src
.join
(
path
);
...
...
@@ -256,8 +257,8 @@ pub fn prepare_tool_cargo(
// stages and such and it's just easier if they're not dynamically linked.
cargo
.env
(
"RUSTC_NO_PREFER_DYNAMIC"
,
"1"
);
if
is_ext_tool
{
cargo
.env
(
"RUSTC_EXT_TOOL"
,
"1"
);
if
is_ext
ernal
_tool
{
cargo
.env
(
"RUSTC_EXT
ERNAL
_TOOL"
,
"1"
);
}
if
let
Some
(
dir
)
=
builder
.openssl_install_dir
(
target
)
{
...
...
@@ -287,7 +288,8 @@ pub fn prepare_tool_cargo(
}
macro_rules!
tool
{
(
$
(
$name:ident
,
$path:expr
,
$tool_name:expr
,
$mode:expr
$
(,
llvm_tools
=
$llvm:expr
)
*
;)
+
)
=>
{
(
$
(
$name:ident
,
$path:expr
,
$tool_name:expr
,
$mode:expr
$
(,
llvm_tools
=
$llvm:expr
)
*
$
(,
external_tool
=
$external:expr
)
*
;)
+
)
=>
{
#[derive(Copy,
PartialEq,
Eq,
Clone)]
pub
enum
Tool
{
$
(
...
...
@@ -364,7 +366,8 @@ fn run(self, builder: &Builder) -> PathBuf {
tool
:
$tool_name
,
mode
:
$mode
,
path
:
$path
,
is_ext_tool
:
false
,
is_optional_tool
:
false
,
is_external_tool
:
false
$
(||
$external
)
*
,
extra_features
:
Vec
::
new
(),
})
.expect
(
"expected to build -- essential tool"
)
}
...
...
@@ -383,7 +386,8 @@ fn run(self, builder: &Builder) -> PathBuf {
Compiletest
,
"src/tools/compiletest"
,
"compiletest"
,
Mode
::
ToolBootstrap
,
llvm_tools
=
true
;
BuildManifest
,
"src/tools/build-manifest"
,
"build-manifest"
,
Mode
::
ToolBootstrap
;
RemoteTestClient
,
"src/tools/remote-test-client"
,
"remote-test-client"
,
Mode
::
ToolBootstrap
;
RustInstaller
,
"src/tools/rust-installer"
,
"fabricate"
,
Mode
::
ToolBootstrap
;
RustInstaller
,
"src/tools/rust-installer"
,
"fabricate"
,
Mode
::
ToolBootstrap
,
external_tool
=
true
;
RustdocTheme
,
"src/tools/rustdoc-themes"
,
"rustdoc-themes"
,
Mode
::
ToolBootstrap
;
);
...
...
@@ -414,7 +418,8 @@ fn run(self, builder: &Builder) -> PathBuf {
tool
:
"remote-test-server"
,
mode
:
Mode
::
ToolStd
,
path
:
"src/tools/remote-test-server"
,
is_ext_tool
:
false
,
is_optional_tool
:
false
,
is_external_tool
:
false
,
extra_features
:
Vec
::
new
(),
})
.expect
(
"expected to build -- essential tool"
)
}
...
...
@@ -541,7 +546,8 @@ fn run(self, builder: &Builder) -> PathBuf {
tool
:
"cargo"
,
mode
:
Mode
::
ToolRustc
,
path
:
"src/tools/cargo"
,
is_ext_tool
:
false
,
is_optional_tool
:
false
,
is_external_tool
:
true
,
extra_features
:
Vec
::
new
(),
})
.expect
(
"expected to build -- essential tool"
)
}
...
...
@@ -590,7 +596,8 @@ fn run(mut $sel, $builder: &Builder) -> Option<PathBuf> {
mode
:
Mode
::
ToolRustc
,
path
:
$path
,
extra_features
:
$sel
.extra_features
,
is_ext_tool
:
true
,
is_optional_tool
:
true
,
is_external_tool
:
true
,
})
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录