Skip to content

Commit 88609e5

Browse files
committed
Rename derive_merge macro to define_config and move Deserialize impl into it
1 parent 4800c78 commit 88609e5

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

src/bootstrap/config.rs

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -362,11 +362,13 @@ impl Merge for TomlConfig {
362362

363363
// We are using a decl macro instead of a derive proc macro here to reduce the compile time of
364364
// rustbuild.
365-
macro_rules! derive_merge {
365+
macro_rules! define_config {
366366
($(#[$attr:meta])* struct $name:ident {
367367
$($field:ident: $field_ty:ty,)*
368368
}) => {
369369
$(#[$attr])*
370+
#[derive(Deserialize)]
371+
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
370372
struct $name {
371373
$($field: $field_ty,)*
372374
}
@@ -383,10 +385,9 @@ macro_rules! derive_merge {
383385
}
384386
}
385387

386-
derive_merge! {
388+
define_config! {
387389
/// TOML representation of various global build decisions.
388-
#[derive(Deserialize, Default)]
389-
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
390+
#[derive(Default)]
390391
struct Build {
391392
build: Option<String>,
392393
host: Option<Vec<String>>,
@@ -429,10 +430,8 @@ derive_merge! {
429430
}
430431
}
431432

432-
derive_merge! {
433+
define_config! {
433434
/// TOML representation of various global install decisions.
434-
#[derive(Deserialize)]
435-
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
436435
struct Install {
437436
prefix: Option<String>,
438437
sysconfdir: Option<String>,
@@ -444,10 +443,8 @@ derive_merge! {
444443
}
445444
}
446445

447-
derive_merge! {
446+
define_config! {
448447
/// TOML representation of how the LLVM build is configured.
449-
#[derive(Deserialize)]
450-
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
451448
struct Llvm {
452449
skip_rebuild: Option<bool>,
453450
optimize: Option<bool>,
@@ -479,9 +476,7 @@ derive_merge! {
479476
}
480477
}
481478

482-
derive_merge! {
483-
#[derive(Deserialize)]
484-
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
479+
define_config! {
485480
struct Dist {
486481
sign_folder: Option<String>,
487482
gpg_password_file: Option<String>,
@@ -505,10 +500,8 @@ impl Default for StringOrBool {
505500
}
506501
}
507502

508-
derive_merge! {
503+
define_config! {
509504
/// TOML representation of how the Rust build is configured.
510-
#[derive(Deserialize)]
511-
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
512505
struct Rust {
513506
optimize: Option<bool>,
514507
debug: Option<bool>,
@@ -560,10 +553,8 @@ derive_merge! {
560553
}
561554
}
562555

563-
derive_merge! {
556+
define_config! {
564557
/// TOML representation of how each build target is configured.
565-
#[derive(Deserialize)]
566-
#[serde(deny_unknown_fields, rename_all = "kebab-case")]
567558
struct TomlTarget {
568559
cc: Option<String>,
569560
cxx: Option<String>,

0 commit comments

Comments
 (0)