@@ -507,7 +507,26 @@ def print_key_value(k, v, tabstop):
507
507
508
508
return
509
509
510
- def generate_include_file (defs , fixup ):
510
+ def generate_keyvalue_file (defs , args ):
511
+ compatible = reduced ['/' ]['props' ]['compatible' ][0 ]
512
+
513
+ node_keys = sorted (defs .keys ())
514
+ for node in node_keys :
515
+ sys .stdout .write ('# ' + node .split ('/' )[- 1 ] )
516
+ sys .stdout .write ("\n " )
517
+
518
+ prop_keys = sorted (defs [node ].keys ())
519
+ for prop in prop_keys :
520
+ if prop == 'aliases' :
521
+ for entry in sorted (defs [node ][prop ]):
522
+ a = defs [node ][prop ].get (entry )
523
+ sys .stdout .write ("%s=%s\n " % (entry , defs [node ].get (a )))
524
+ else :
525
+ sys .stdout .write ("%s=%s\n " % (prop ,defs [node ].get (prop )))
526
+
527
+ sys .stdout .write ("\n " )
528
+
529
+ def generate_include_file (defs , args ):
511
530
compatible = reduced ['/' ]['props' ]['compatible' ][0 ]
512
531
513
532
sys .stdout .write ("/**************************************************\n " )
@@ -538,31 +557,36 @@ def generate_include_file(defs, fixup):
538
557
for prop in prop_keys :
539
558
if prop == 'aliases' :
540
559
for entry in sorted (defs [node ][prop ]):
541
- print_key_value (entry , defs [node ][prop ].get (entry ), maxtabstop )
560
+ a = defs [node ][prop ].get (entry )
561
+ print_key_value (entry , a , maxtabstop )
542
562
else :
543
563
print_key_value (prop , defs [node ].get (prop ), maxtabstop )
564
+
544
565
sys .stdout .write ("\n " )
545
566
546
- if fixup and os .path .exists (fixup ):
567
+ if args . fixup and os .path .exists (args . fixup ):
547
568
sys .stdout .write ("\n " )
548
569
sys .stdout .write ("/* Following definitions fixup the generated include */\n " )
549
570
try :
550
- with open (fixup , "r" ) as fd :
571
+ with open (args . fixup , "r" ) as fd :
551
572
for line in fd .readlines ():
552
573
sys .stdout .write (line )
553
574
sys .stdout .write ("\n " )
554
575
except :
555
- raise Exception ("Input file " + os .path .abspath (fixup ) + " does not exist." )
576
+ raise Exception ("Input file " + os .path .abspath (args . fixup ) + " does not exist." )
556
577
557
578
sys .stdout .write ("#endif\n " )
558
579
559
580
def parse_arguments ():
560
581
561
582
parser = argparse .ArgumentParser (description = __doc__ ,
562
583
formatter_class = argparse .RawDescriptionHelpFormatter )
584
+
563
585
parser .add_argument ("-d" , "--dts" , help = "DTS file" )
564
586
parser .add_argument ("-y" , "--yaml" , help = "YAML file" )
565
587
parser .add_argument ("-f" , "--fixup" , help = "Fixup file" )
588
+ parser .add_argument ("-k" , "--keyvalue" , action = "store_true" ,
589
+ help = "Generate file to be included by the build system" )
566
590
567
591
return parser .parse_args ()
568
592
@@ -654,7 +678,10 @@ def main():
654
678
extract_reg_prop (chosen ['zephyr,sram' ], None , defs , "CONFIG_SRAM" , 1024 )
655
679
656
680
# generate include file
657
- generate_include_file (defs , args .fixup )
681
+ if args .keyvalue :
682
+ generate_keyvalue_file (defs , args )
683
+ else :
684
+ generate_include_file (defs , args )
658
685
659
686
if __name__ == '__main__' :
660
687
main ()
0 commit comments