@@ -1088,14 +1088,64 @@ impl Config {
1088
1088
)
1089
1089
} ;
1090
1090
1091
+ let ccache = match build_ccache {
1092
+ Some ( StringOrBool :: String ( s) ) => Some ( s) ,
1093
+ Some ( StringOrBool :: Bool ( true ) ) => Some ( "ccache" . to_string ( ) ) ,
1094
+ _ => None ,
1095
+ } ;
1096
+
1097
+ let explicit_stage_from_config = build_test_stage. is_some ( )
1098
+ || build_build_stage. is_some ( )
1099
+ || build_doc_stage. is_some ( )
1100
+ || build_dist_stage. is_some ( )
1101
+ || build_install_stage. is_some ( )
1102
+ || build_check_stage. is_some ( )
1103
+ || build_bench_stage. is_some ( ) ;
1104
+
1105
+ let deny_warnings = match flags_warnings {
1106
+ Warnings :: Deny => true ,
1107
+ Warnings :: Warn => false ,
1108
+ Warnings :: Default => rust_deny_warnings. unwrap_or ( true ) ,
1109
+ } ;
1110
+
1111
+ let gcc_ci_mode = match gcc_download_ci_gcc {
1112
+ Some ( value) => match value {
1113
+ true => GccCiMode :: DownloadFromCi ,
1114
+ false => GccCiMode :: BuildLocally ,
1115
+ } ,
1116
+ None => GccCiMode :: default ( ) ,
1117
+ } ;
1118
+
1119
+ let targets = flags_target
1120
+ . map ( |TargetSelectionList ( targets) | targets)
1121
+ . or_else ( || {
1122
+ build_target. map ( |t| t. iter ( ) . map ( |t| TargetSelection :: from_user ( t) ) . collect ( ) )
1123
+ } )
1124
+ . unwrap_or_else ( || hosts. clone ( ) ) ;
1125
+
1126
+ #[ allow( clippy:: map_identity) ]
1127
+ let skip = flags_skip
1128
+ . into_iter ( )
1129
+ . chain ( flags_exclude)
1130
+ . chain ( build_exclude. unwrap_or_default ( ) )
1131
+ . map ( |p| {
1132
+ // Never return top-level path here as it would break `--skip`
1133
+ // logic on rustc's internal test framework which is utilized by compiletest.
1134
+ #[ cfg( windows) ]
1135
+ {
1136
+ PathBuf :: from ( p. to_string_lossy ( ) . replace ( '/' , "\\ " ) )
1137
+ }
1138
+ #[ cfg( not( windows) ) ]
1139
+ {
1140
+ p
1141
+ }
1142
+ } )
1143
+ . collect ( ) ;
1144
+
1091
1145
Config {
1092
1146
change_id : toml. change_id . inner ,
1093
1147
bypass_bootstrap_lock : flags_bypass_bootstrap_lock,
1094
- ccache : match build_ccache {
1095
- Some ( StringOrBool :: String ( s) ) => Some ( s) ,
1096
- Some ( StringOrBool :: Bool ( true ) ) => Some ( "ccache" . to_string ( ) ) ,
1097
- _ => None ,
1098
- } ,
1148
+ ccache,
1099
1149
ninja_in_file : llvm_ninja. unwrap_or ( true ) ,
1100
1150
compiler_docs : build_compiler_docs. unwrap_or ( false ) ,
1101
1151
library_docs_private_items : build_library_docs_private_items. unwrap_or ( false ) ,
@@ -1122,25 +1172,15 @@ impl Config {
1122
1172
stderr_is_tty : std:: io:: stderr ( ) . is_terminal ( ) ,
1123
1173
on_fail : flags_on_fail,
1124
1174
explicit_stage_from_cli : flags_stage. is_some ( ) ,
1125
- explicit_stage_from_config : build_test_stage. is_some ( )
1126
- || build_build_stage. is_some ( )
1127
- || build_doc_stage. is_some ( )
1128
- || build_dist_stage. is_some ( )
1129
- || build_install_stage. is_some ( )
1130
- || build_check_stage. is_some ( )
1131
- || build_bench_stage. is_some ( ) ,
1175
+ explicit_stage_from_config,
1132
1176
1133
1177
keep_stage : flags_keep_stage,
1134
1178
keep_stage_std : flags_keep_stage_std,
1135
1179
jobs : Some ( threads_from_config ( flags_jobs. or ( build_jobs) . unwrap_or ( 0 ) ) ) ,
1136
1180
incremental : flags_incremental || rust_incremental == Some ( true ) ,
1137
1181
dump_bootstrap_shims : flags_dump_bootstrap_shims,
1138
1182
free_args : flags_free_args,
1139
- deny_warnings : match flags_warnings {
1140
- Warnings :: Deny => true ,
1141
- Warnings :: Warn => false ,
1142
- Warnings :: Default => rust_deny_warnings. unwrap_or ( true ) ,
1143
- } ,
1183
+ deny_warnings,
1144
1184
backtrace_on_ice : rust_backtrace_on_ice. unwrap_or ( false ) ,
1145
1185
llvm_tests : llvm_tests. unwrap_or ( false ) ,
1146
1186
llvm_enzyme : llvm_enzyme. unwrap_or ( false ) ,
@@ -1167,13 +1207,7 @@ impl Config {
1167
1207
llvm_cxxflags,
1168
1208
llvm_ldflags,
1169
1209
llvm_use_libcxx : llvm_use_libcxx. unwrap_or ( false ) ,
1170
- gcc_ci_mode : match gcc_download_ci_gcc {
1171
- Some ( value) => match value {
1172
- true => GccCiMode :: DownloadFromCi ,
1173
- false => GccCiMode :: BuildLocally ,
1174
- } ,
1175
- None => GccCiMode :: default ( ) ,
1176
- } ,
1210
+ gcc_ci_mode,
1177
1211
rust_optimize : rust_optimize. unwrap_or ( RustOptimize :: Bool ( true ) ) ,
1178
1212
rust_codegen_units : rust_codegen_units. map ( threads_from_config) ,
1179
1213
rust_codegen_units_std : rust_codegen_units_std. map ( threads_from_config) ,
@@ -1278,30 +1312,8 @@ impl Config {
1278
1312
// If we're building from git or tarball sources, enable it by default.
1279
1313
rust_info. is_managed_git_subrepository ( ) || rust_info. is_from_tarball ( )
1280
1314
} ) ,
1281
- targets : flags_target
1282
- . map ( |TargetSelectionList ( targets) | targets)
1283
- . or_else ( || {
1284
- build_target. map ( |t| t. iter ( ) . map ( |t| TargetSelection :: from_user ( t) ) . collect ( ) )
1285
- } )
1286
- . unwrap_or_else ( || hosts. clone ( ) ) ,
1287
- #[ allow( clippy:: map_identity) ]
1288
- skip : flags_skip
1289
- . into_iter ( )
1290
- . chain ( flags_exclude)
1291
- . chain ( build_exclude. unwrap_or_default ( ) )
1292
- . map ( |p| {
1293
- // Never return top-level path here as it would break `--skip`
1294
- // logic on rustc's internal test framework which is utilized by compiletest.
1295
- #[ cfg( windows) ]
1296
- {
1297
- PathBuf :: from ( p. to_string_lossy ( ) . replace ( '/' , "\\ " ) )
1298
- }
1299
- #[ cfg( not( windows) ) ]
1300
- {
1301
- p
1302
- }
1303
- } )
1304
- . collect ( ) ,
1315
+ targets,
1316
+ skip,
1305
1317
paths : flags_paths,
1306
1318
config : toml_path,
1307
1319
llvm_thin_lto : llvm_thin_lto. unwrap_or ( false ) ,
0 commit comments