mirror of https://github.com/ARMmbed/mbed-os.git
Add duplicate detection to project compilation
parent
0abd5191e8
commit
a85a384973
|
@ -20,7 +20,8 @@
|
|||
"fpu": "double",
|
||||
"public": true,
|
||||
"default_build": "standard",
|
||||
"release": true
|
||||
"release": true,
|
||||
"supported_toolchains": ["ARM"]
|
||||
},
|
||||
"CM4_UARM": {
|
||||
"inherits": ["Target"],
|
||||
|
|
|
@ -452,6 +452,8 @@ def build_project(src_paths, build_path, target, toolchain_name,
|
|||
# Link Program
|
||||
res, _ = toolchain.link_program(resources, build_path, name)
|
||||
|
||||
resources.detect_duplicates()
|
||||
|
||||
if report != None:
|
||||
end = time()
|
||||
cur_result["elapsed_time"] = end - start
|
||||
|
|
|
@ -120,6 +120,29 @@ class Resources:
|
|||
|
||||
return self
|
||||
|
||||
def detect_duplicates(self):
|
||||
dupe_dict = dict()
|
||||
for filename in self.s_sources + self.c_sources + self.cpp_sources:
|
||||
objname, _ = splitext(basename(filename))
|
||||
dupe_dict.setdefault(objname, [])
|
||||
dupe_dict[objname].append(filename)
|
||||
for objname, filenames in dupe_dict.iteritems():
|
||||
if len(filenames) > 1:
|
||||
print "[ERROR] Object file %s.o is not unique!"\
|
||||
" It could be made from:" % objname
|
||||
print columnate(filenames)
|
||||
dupe_headers = dict()
|
||||
for filename in self.headers:
|
||||
headername = basename(filename)
|
||||
dupe_headers.setdefault(headername, [])
|
||||
dupe_headers[headername].append(headername)
|
||||
for headername, locations in dupe_headers.iteritems():
|
||||
if len(filenames) > 1:
|
||||
print "[ERROR] Header file %s is not unique! It could be:" %\
|
||||
headername
|
||||
print columnate(locations)
|
||||
|
||||
|
||||
def relative_to(self, base, dot=False):
|
||||
for field in ['inc_dirs', 'headers', 's_sources', 'c_sources',
|
||||
'cpp_sources', 'lib_dirs', 'objects', 'libraries',
|
||||
|
|
Loading…
Reference in New Issue