[tools][cmake] fix processing groups with similar name (#9667)

This commit is contained in:
Kai 2024-11-22 19:06:43 +08:00 committed by GitHub
parent 42a41c696d
commit e4b02a28f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 15 additions and 1 deletions

View File

@ -9,7 +9,7 @@ import re
import utils
import rtconfig
from utils import _make_path_relative
from collections import defaultdict
from collections import defaultdict, Counter
def GenerateCFiles(env, project, project_name):
@ -184,6 +184,20 @@ def GenerateCFiles(env, project, project_name):
else:
libgroups.append(group)
# Process groups whose names differ only in capitalization.
# (Groups have same name should be merged into one before)
for group in libgroups:
group['alias'] = group['name'].lower()
names = [group['alias'] for group in libgroups]
counter = Counter(names)
names = [name for name in names if counter[name] > 1]
for group in libgroups:
if group['alias'] in names:
counter[group['alias']] -= 1
group['alias'] = f"{group['name']}_{counter[group['alias']]}"
print(f"Renamed {group['name']} to {group['alias']}")
group['name'] = group['alias']
cm_file.write("# Library source files\n")
for group in project:
cm_file.write("SET(RT_{:s}_SOURCES\n".format(group['name'].upper()))