@@ -2033,13 +2033,16 @@ def aggregate_dir():
20332033 variant_exp = []
20342034 # Compare the first directory to all other directories
20352035 while mcu_dirs and index < len (mcu_dirs ):
2036- # Compare all the variant file except the generic_boards.txt
2036+ # Compare all the variant files except the generic_boards.txt
20372037 mcu_dir2_files_list = [
20382038 mcu_dirs [index ] / periph_c_filename ,
20392039 mcu_dirs [index ] / pinvar_h_filename ,
20402040 mcu_dirs [index ] / variant_cpp_filename ,
20412041 mcu_dirs [index ] / variant_h_filename ,
20422042 ]
2043+ # Iterate over each variant files
2044+ periph_xml_tmp = []
2045+ variant_exp_tmp = []
20432046 for index2 , fname in enumerate (mcu_dir1_files_list ):
20442047 with open (fname , "r" ) as f1 :
20452048 with open (mcu_dir2_files_list [index2 ], "r" ) as f2 :
@@ -2048,20 +2051,30 @@ def aggregate_dir():
20482051 if not diff or len (diff ) == 2 :
20492052 if index2 == 0 :
20502053 for line in diff :
2051- periph_xml += periperalpins_regex .findall (line )
2054+ periph_xml_tmp += periperalpins_regex .findall (
2055+ line
2056+ )
20522057 elif index2 == 2 :
20532058 for line in diff :
2054- variant_exp += variant_regex .findall (line )
2059+ variant_exp_tmp += variant_regex .findall (line )
20552060 continue
20562061 else :
20572062 # Not the same directory compare with the next one
20582063 index += 1
20592064 break
20602065 # All files compared and matched
20612066 else :
2067+ # Concatenate lists without duplicate
2068+ uniq_periph_xml = set (periph_xml_tmp ) - set (periph_xml )
2069+ periph_xml = periph_xml + list (uniq_periph_xml )
2070+ uniq_variant_exp = set (variant_exp_tmp ) - set (variant_exp )
2071+ variant_exp = variant_exp + list (uniq_variant_exp )
20622072 # Matched files append to the group list
20632073 group_mcu_dir .append (mcu_dirs .pop (index ))
2074+ del periph_xml_tmp [:]
2075+ del variant_exp_tmp [:]
20642076 del mcu_dir2_files_list [:]
2077+
20652078 # Merge directories name and contents if needed
20662079 mcu_dir = merge_dir (
20672080 out_temp_path , group_mcu_dir , mcu_family , periph_xml , variant_exp
0 commit comments