diff options
| author | bjorn3 <bjorn3@users.noreply.github.com> | 2022-03-02 18:38:40 +0100 |
|---|---|---|
| committer | bjorn3 <bjorn3@users.noreply.github.com> | 2022-03-13 14:31:12 +0100 |
| commit | 88609e51265a563552e8fb4509f83a99e15451b2 (patch) | |
| tree | 8a3fa338858d791534fb0824728ca2756a82cebc /src/bootstrap | |
| parent | 4800c7816ee1937d028407066d229f74b4673c92 (diff) | |
| download | rust-88609e51265a563552e8fb4509f83a99e15451b2.tar.gz rust-88609e51265a563552e8fb4509f83a99e15451b2.zip | |
Rename derive_merge macro to define_config and move Deserialize impl into it
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/config.rs | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 0c0a4733231..7e6eecaaa88 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -362,11 +362,13 @@ impl Merge for TomlConfig { // We are using a decl macro instead of a derive proc macro here to reduce the compile time of // rustbuild. -macro_rules! derive_merge { +macro_rules! define_config { ($(#[$attr:meta])* struct $name:ident { $($field:ident: $field_ty:ty,)* }) => { $(#[$attr])* + #[derive(Deserialize)] + #[serde(deny_unknown_fields, rename_all = "kebab-case")] struct $name { $($field: $field_ty,)* } @@ -383,10 +385,9 @@ macro_rules! derive_merge { } } -derive_merge! { +define_config! { /// TOML representation of various global build decisions. - #[derive(Deserialize, Default)] - #[serde(deny_unknown_fields, rename_all = "kebab-case")] + #[derive(Default)] struct Build { build: Option<String>, host: Option<Vec<String>>, @@ -429,10 +430,8 @@ derive_merge! { } } -derive_merge! { +define_config! { /// TOML representation of various global install decisions. - #[derive(Deserialize)] - #[serde(deny_unknown_fields, rename_all = "kebab-case")] struct Install { prefix: Option<String>, sysconfdir: Option<String>, @@ -444,10 +443,8 @@ derive_merge! { } } -derive_merge! { +define_config! { /// TOML representation of how the LLVM build is configured. - #[derive(Deserialize)] - #[serde(deny_unknown_fields, rename_all = "kebab-case")] struct Llvm { skip_rebuild: Option<bool>, optimize: Option<bool>, @@ -479,9 +476,7 @@ derive_merge! { } } -derive_merge! { - #[derive(Deserialize)] - #[serde(deny_unknown_fields, rename_all = "kebab-case")] +define_config! { struct Dist { sign_folder: Option<String>, gpg_password_file: Option<String>, @@ -505,10 +500,8 @@ impl Default for StringOrBool { } } -derive_merge! { +define_config! { /// TOML representation of how the Rust build is configured. - #[derive(Deserialize)] - #[serde(deny_unknown_fields, rename_all = "kebab-case")] struct Rust { optimize: Option<bool>, debug: Option<bool>, @@ -560,10 +553,8 @@ derive_merge! { } } -derive_merge! { +define_config! { /// TOML representation of how each build target is configured. - #[derive(Deserialize)] - #[serde(deny_unknown_fields, rename_all = "kebab-case")] struct TomlTarget { cc: Option<String>, cxx: Option<String>, |
