| #endif | #endif | ||||
| }); | }); | ||||
| /// TODO: Handle base_warning_flags: | |||||
| tc.warning_flags = read_opt(warning_flags, [&]() -> string_seq { | |||||
| // `base_warning_flags` is loaded first, and switches based on compiler_id. | |||||
| // This one is "advanced," and sets a common base for warning sets | |||||
| tc.warning_flags = read_opt(base_warning_flags, [&]() -> string_seq { | |||||
| if (!compiler_id) { | if (!compiler_id) { | ||||
| // No error. Just no warning flags | // No error. Just no warning flags | ||||
| return {}; | return {}; | ||||
| std::terminate(); | std::terminate(); | ||||
| }); | }); | ||||
| // `warning_flags` allows the user to provide additional warnings/errors | |||||
| if (warning_flags) { | |||||
| extend(tc.warning_flags, *warning_flags); | |||||
| } | |||||
| tc.link_archive = read_opt(create_archive, [&]() -> string_seq { | tc.link_archive = read_opt(create_archive, [&]() -> string_seq { | ||||
| if (!compiler_id) { | if (!compiler_id) { | ||||
| fail(context, "Unable to deduce archive creation rules without a 'compiler_id'"); | fail(context, "Unable to deduce archive creation rules without a 'compiler_id'"); |