@@ -362,11 +362,13 @@ impl Merge for TomlConfig {
362
362
363
363
// We are using a decl macro instead of a derive proc macro here to reduce the compile time of
364
364
// rustbuild.
365
- macro_rules! derive_merge {
365
+ macro_rules! define_config {
366
366
( $( #[ $attr: meta] ) * struct $name: ident {
367
367
$( $field: ident: $field_ty: ty, ) *
368
368
} ) => {
369
369
$( #[ $attr] ) *
370
+ #[ derive( Deserialize ) ]
371
+ #[ serde( deny_unknown_fields, rename_all = "kebab-case" ) ]
370
372
struct $name {
371
373
$( $field: $field_ty, ) *
372
374
}
@@ -383,10 +385,9 @@ macro_rules! derive_merge {
383
385
}
384
386
}
385
387
386
- derive_merge ! {
388
+ define_config ! {
387
389
/// TOML representation of various global build decisions.
388
- #[ derive( Deserialize , Default ) ]
389
- #[ serde( deny_unknown_fields, rename_all = "kebab-case" ) ]
390
+ #[ derive( Default ) ]
390
391
struct Build {
391
392
build: Option <String >,
392
393
host: Option <Vec <String >>,
@@ -429,10 +430,8 @@ derive_merge! {
429
430
}
430
431
}
431
432
432
- derive_merge ! {
433
+ define_config ! {
433
434
/// TOML representation of various global install decisions.
434
- #[ derive( Deserialize ) ]
435
- #[ serde( deny_unknown_fields, rename_all = "kebab-case" ) ]
436
435
struct Install {
437
436
prefix: Option <String >,
438
437
sysconfdir: Option <String >,
@@ -444,10 +443,8 @@ derive_merge! {
444
443
}
445
444
}
446
445
447
- derive_merge ! {
446
+ define_config ! {
448
447
/// TOML representation of how the LLVM build is configured.
449
- #[ derive( Deserialize ) ]
450
- #[ serde( deny_unknown_fields, rename_all = "kebab-case" ) ]
451
448
struct Llvm {
452
449
skip_rebuild: Option <bool >,
453
450
optimize: Option <bool >,
@@ -479,9 +476,7 @@ derive_merge! {
479
476
}
480
477
}
481
478
482
- derive_merge ! {
483
- #[ derive( Deserialize ) ]
484
- #[ serde( deny_unknown_fields, rename_all = "kebab-case" ) ]
479
+ define_config ! {
485
480
struct Dist {
486
481
sign_folder: Option <String >,
487
482
gpg_password_file: Option <String >,
@@ -505,10 +500,8 @@ impl Default for StringOrBool {
505
500
}
506
501
}
507
502
508
- derive_merge ! {
503
+ define_config ! {
509
504
/// TOML representation of how the Rust build is configured.
510
- #[ derive( Deserialize ) ]
511
- #[ serde( deny_unknown_fields, rename_all = "kebab-case" ) ]
512
505
struct Rust {
513
506
optimize: Option <bool >,
514
507
debug: Option <bool >,
@@ -560,10 +553,8 @@ derive_merge! {
560
553
}
561
554
}
562
555
563
- derive_merge ! {
556
+ define_config ! {
564
557
/// TOML representation of how each build target is configured.
565
- #[ derive( Deserialize ) ]
566
- #[ serde( deny_unknown_fields, rename_all = "kebab-case" ) ]
567
558
struct TomlTarget {
568
559
cc: Option <String >,
569
560
cxx: Option <String >,
0 commit comments