From 3b7a5bb35eb07dbddf8d05e8ef0195a80fb0bd67 Mon Sep 17 00:00:00 2001 From: Jimmy Brisson Date: Tue, 26 Jun 2018 10:22:10 -0500 Subject: [PATCH] Filter libraries by extension in exporters --- tools/export/atmelstudio/__init__.py | 2 +- tools/export/cces/__init__.py | 2 +- tools/export/cmake/__init__.py | 2 +- tools/export/cmsis/__init__.py | 2 +- tools/export/codeblocks/__init__.py | 3 +-- tools/export/coide/__init__.py | 2 +- tools/export/ds5_5/__init__.py | 2 +- tools/export/embitz/__init__.py | 2 +- tools/export/exporters.py | 5 +++++ tools/export/gnuarmeclipse/__init__.py | 2 +- tools/export/iar/__init__.py | 2 +- tools/export/kds/__init__.py | 2 +- tools/export/lpcxpresso/__init__.py | 2 +- tools/export/makefile/__init__.py | 2 +- tools/export/mcuxpresso/__init__.py | 7 ++++--- tools/export/simplicity/__init__.py | 2 +- tools/export/sw4stm32/__init__.py | 2 +- tools/export/uvision/__init__.py | 2 +- 18 files changed, 25 insertions(+), 20 deletions(-) diff --git a/tools/export/atmelstudio/__init__.py b/tools/export/atmelstudio/__init__.py index 531f7fdfbe..c18f798e37 100644 --- a/tools/export/atmelstudio/__init__.py +++ b/tools/export/atmelstudio/__init__.py @@ -59,7 +59,7 @@ class AtmelStudio(Exporter): source_folders.append(e) libraries = [] - for lib in self.resources.libraries: + for lib in self.libraries: l, _ = splitext(basename(lib)) libraries.append(l[3:]) diff --git a/tools/export/cces/__init__.py b/tools/export/cces/__init__.py index b2df58a583..cb193aaa8f 100644 --- a/tools/export/cces/__init__.py +++ b/tools/export/cces/__init__.py @@ -318,7 +318,7 @@ class CCES(Exporter): cxx_flags = self.flags['cxx_flags'] + self.flags['common_flags'] libs = [] - for libpath in self.resources.libraries: + for libpath in self.libraries: lib = os.path.splitext(os.path.basename(libpath))[0] libs.append(lib[3:]) # skip 'lib' prefix diff --git a/tools/export/cmake/__init__.py b/tools/export/cmake/__init__.py index e1f3e0b749..5cf7caa95d 100644 --- a/tools/export/cmake/__init__.py +++ b/tools/export/cmake/__init__.py @@ -68,7 +68,7 @@ class CMake(Exporter): srcs = [re.sub(r'^[.]/', '', f) for f in srcs] # additional libraries - libraries = [self.prepare_lib(basename(lib)) for lib in self.resources.libraries] + libraries = [self.prepare_lib(basename(lib)) for lib in self.libraries] sys_libs = [self.prepare_sys_lib(lib) for lib in self.toolchain.sys_libs] # sort includes reverse, so the deepest dir comes first (ensures short includes) diff --git a/tools/export/cmsis/__init__.py b/tools/export/cmsis/__init__.py index f6eceddc73..999b0b61d8 100644 --- a/tools/export/cmsis/__init__.py +++ b/tools/export/cmsis/__init__.py @@ -143,7 +143,7 @@ class CMSIS(Exporter): def generate(self): srcs = self.resources.headers + self.resources.s_sources + \ self.resources.c_sources + self.resources.cpp_sources + \ - self.resources.objects + self.resources.libraries + \ + self.resources.objects + self.libraries + \ [self.resources.linker_script] srcs = [fileCMSIS(src, src) for src in srcs if src] ctx = { diff --git a/tools/export/codeblocks/__init__.py b/tools/export/codeblocks/__init__.py index 3e1129f003..31841355be 100644 --- a/tools/export/codeblocks/__init__.py +++ b/tools/export/codeblocks/__init__.py @@ -90,8 +90,7 @@ class CodeBlocks(GccArm): not x.startswith('obj'))]; c_sources = sorted([self.filter_dot(s) for s in self.resources.c_sources]) - libraries = [self.prepare_lib(basename(lib)) for lib - in self.resources.libraries] + libraries = [self.prepare_lib(basename(lib)) for lib in self.libraries] sys_libs = [self.prepare_sys_lib(lib) for lib in self.toolchain.sys_libs] ncs36510fib = (hasattr(self.toolchain.target, 'post_binary_hook') and diff --git a/tools/export/coide/__init__.py b/tools/export/coide/__init__.py index 9e47247015..41a55f5bc9 100644 --- a/tools/export/coide/__init__.py +++ b/tools/export/coide/__init__.py @@ -88,7 +88,7 @@ class CoIDE(Exporter): }) libraries = [] - for lib in self.resources.libraries: + for lib in self.libraries: l, _ = splitext(basename(lib)) libraries.append(l[3:]) diff --git a/tools/export/ds5_5/__init__.py b/tools/export/ds5_5/__init__.py index 6f7346b4ce..9b2649269f 100644 --- a/tools/export/ds5_5/__init__.py +++ b/tools/export/ds5_5/__init__.py @@ -60,7 +60,7 @@ class DS5_5(Exporter): 'name': self.project_name, 'include_paths': self.resources.inc_dirs, 'scatter_file': self.resources.linker_script, - 'object_files': self.resources.objects + self.resources.libraries, + 'object_files': self.resources.objects + self.libraries, 'source_files': source_files, 'symbols': self.toolchain.get_symbols() } diff --git a/tools/export/embitz/__init__.py b/tools/export/embitz/__init__.py index 9cdd1f03a4..9d4ebac9b1 100644 --- a/tools/export/embitz/__init__.py +++ b/tools/export/embitz/__init__.py @@ -60,7 +60,7 @@ class EmBitz(Exporter): }) libraries = [] - for lib in self.resources.libraries: + for lib in self.libraries: l, _ = splitext(basename(lib)) libraries.append(l[3:]) diff --git a/tools/export/exporters.py b/tools/export/exporters.py index 7b7e40cbb4..984022b0f5 100644 --- a/tools/export/exporters.py +++ b/tools/export/exporters.py @@ -118,6 +118,11 @@ class Exporter(object): config_header.name) return flags + @property + def libraries(self): + return [l for l in self.resources.get_file_names(FileType.LIB) + if l.endswith(self.toolchain.LIBRARY_EXT)] + def toolchain_flags(self, toolchain): """Returns a dictionary of toolchain flags. Keys of the dictionary are: diff --git a/tools/export/gnuarmeclipse/__init__.py b/tools/export/gnuarmeclipse/__init__.py index 559386a9b5..14e74c09a2 100644 --- a/tools/export/gnuarmeclipse/__init__.py +++ b/tools/export/gnuarmeclipse/__init__.py @@ -90,7 +90,7 @@ class GNUARMEclipse(Exporter): # TODO: use some logger to display additional info if verbose libraries = [] - for lib in self.resources.libraries: + for lib in self.libraries: l, _ = splitext(basename(lib)) libraries.append(l[3:]) diff --git a/tools/export/iar/__init__.py b/tools/export/iar/__init__.py index e3fa360afd..ad105d621e 100644 --- a/tools/export/iar/__init__.py +++ b/tools/export/iar/__init__.py @@ -109,7 +109,7 @@ class IAR(Exporter): raise NotSupportedException("No linker script found.") srcs = self.resources.headers + self.resources.s_sources + \ self.resources.c_sources + self.resources.cpp_sources + \ - self.resources.objects + self.resources.libraries + self.resources.objects + self.libraries flags = self.flags c_flags = list(set(flags['common_flags'] + flags['c_flags'] diff --git a/tools/export/kds/__init__.py b/tools/export/kds/__init__.py index ae50c2b236..80ee5c3d8b 100644 --- a/tools/export/kds/__init__.py +++ b/tools/export/kds/__init__.py @@ -33,7 +33,7 @@ class KDS(Exporter): def generate(self): libraries = [] - for lib in self.resources.libraries: + for lib in self.libraries: l, _ = splitext(basename(lib)) libraries.append(l[3:]) diff --git a/tools/export/lpcxpresso/__init__.py b/tools/export/lpcxpresso/__init__.py index 263a5f7f59..dc8e0ffdd9 100644 --- a/tools/export/lpcxpresso/__init__.py +++ b/tools/export/lpcxpresso/__init__.py @@ -44,7 +44,7 @@ class LPCXpresso(Exporter): def generate(self): libraries = [] - for lib in self.resources.libraries: + for lib in self.libraries: l, _ = splitext(basename(lib)) libraries.append(l[3:]) diff --git a/tools/export/makefile/__init__.py b/tools/export/makefile/__init__.py index 4dc89feeb0..3a595bb3ba 100644 --- a/tools/export/makefile/__init__.py +++ b/tools/export/makefile/__init__.py @@ -70,7 +70,7 @@ class Makefile(Exporter): self.resources.cpp_sources] libraries = [self.prepare_lib(basename(lib)) for lib - in self.resources.libraries] + in self.libraries] sys_libs = [self.prepare_sys_lib(lib) for lib in self.toolchain.sys_libs] diff --git a/tools/export/mcuxpresso/__init__.py b/tools/export/mcuxpresso/__init__.py index 6c2789f1ae..5c84716353 100644 --- a/tools/export/mcuxpresso/__init__.py +++ b/tools/export/mcuxpresso/__init__.py @@ -76,12 +76,13 @@ class MCUXpresso(GNUARMEclipse): # TODO: use some logger to display additional info if verbose - self.libraries = [] + libraries = [] # print 'libraries' # print self.resources.libraries - for lib in self.resources.libraries: + for lib in self.libraries: l, _ = splitext(basename(lib)) - self.libraries.append(l[3:]) + libraries.append(l[3:]) + self.libraries = libraries self.system_libraries = [ 'stdc++', 'supc++', 'm', 'c', 'gcc', 'nosys' diff --git a/tools/export/simplicity/__init__.py b/tools/export/simplicity/__init__.py index d0b5f7e220..d130ace3bf 100644 --- a/tools/export/simplicity/__init__.py +++ b/tools/export/simplicity/__init__.py @@ -144,7 +144,7 @@ class SimplicityV3(Exporter): main_files.append(source) libraries = [] - for lib in self.resources.libraries: + for lib in self.libraries: l, _ = splitext(basename(lib)) if l[3:] not in EXCLUDED_LIBS: libraries.append(l[3:]) diff --git a/tools/export/sw4stm32/__init__.py b/tools/export/sw4stm32/__init__.py index b23a91a115..a3416603ff 100644 --- a/tools/export/sw4stm32/__init__.py +++ b/tools/export/sw4stm32/__init__.py @@ -434,7 +434,7 @@ class Sw4STM32(GNUARMEclipse): self.resources.win_to_unix() libraries = [] - for lib in self.resources.libraries: + for lib in self.libraries: library, _ = splitext(basename(lib)) libraries.append(library[3:]) diff --git a/tools/export/uvision/__init__.py b/tools/export/uvision/__init__.py index 50996218d5..d4c9409386 100644 --- a/tools/export/uvision/__init__.py +++ b/tools/export/uvision/__init__.py @@ -218,7 +218,7 @@ class Uvision(Exporter): srcs = self.resources.headers + self.resources.s_sources + \ self.resources.c_sources + self.resources.cpp_sources + \ - self.resources.objects + self.resources.libraries + self.resources.objects + self.libraries ctx = { 'name': self.project_name, # project_files => dict of generators - file group to generator of