diff options
author | 2015-04-24 16:26:14 +0900 | |
---|---|---|
committer | 2015-04-24 16:26:14 +0900 | |
commit | 1fe4406f374291ab2e86e95a97341fd9c475fcb8 (patch) | |
tree | 1be0e16b4b07b5a31ea97ec50a9eb13a288c3d27 /tool/mbed/mbed-sdk/workspace_tools/export/emblocks.py | |
parent | a20ef7052c6e937d2f7672dd59456e55a5c08296 (diff) | |
download | qmk_firmware-1fe4406f374291ab2e86e95a97341fd9c475fcb8.tar.gz |
b9e0ea0 Merge commit '7fa9d8bdea3773d1195b04d98fcf27cf48ddd81d' as 'tool/mbed/mbed-sdk'
7fa9d8b Squashed 'tool/mbed/mbed-sdk/' content from commit 7c21ce5
git-subtree-dir: tmk_core
git-subtree-split: b9e0ea08cb940de20b3610ecdda18e9d8cd7c552
Diffstat (limited to 'tool/mbed/mbed-sdk/workspace_tools/export/emblocks.py')
-rw-r--r-- | tool/mbed/mbed-sdk/workspace_tools/export/emblocks.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tool/mbed/mbed-sdk/workspace_tools/export/emblocks.py b/tool/mbed/mbed-sdk/workspace_tools/export/emblocks.py new file mode 100644 index 000000000..88a14d335 --- /dev/null +++ b/tool/mbed/mbed-sdk/workspace_tools/export/emblocks.py @@ -0,0 +1,78 @@ +""" +mbed SDK +Copyright (c) 2014 ARM Limited + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +""" +from exporters import Exporter +from os.path import splitext, basename +from workspace_tools.targets import TARGETS + +# filter all the GCC_ARM targets out of the target list +gccTargets = [] +for t in TARGETS: + if 'GCC_ARM' in t.supported_toolchains: + gccTargets.append(t.name) + +class IntermediateFile(Exporter): + NAME = 'EmBlocks' + TOOLCHAIN = 'GCC_ARM' + + # we support all GCC targets (is handled on IDE side) + TARGETS = gccTargets + + FILE_TYPES = { + 'headers': 'h', + 'c_sources': 'c', + 's_sources': 'a', + 'cpp_sources': 'cpp' + } + + + def generate(self): + self.resources.win_to_unix() + source_files = [] + for r_type, n in IntermediateFile.FILE_TYPES.iteritems(): + for file in getattr(self.resources, r_type): + source_files.append({ + 'name': file, 'type': n + }) + + libraries = [] + for lib in self.resources.libraries: + l, _ = splitext(basename(lib)) + libraries.append(l[3:]) + + + if self.resources.linker_script is None: + self.resources.linker_script = '' + + ctx = { + 'name': self.program_name, + 'target': self.target, + 'toolchain': self.toolchain.name, + 'source_files': source_files, + 'include_paths': self.resources.inc_dirs, + 'script_file': self.resources.linker_script, + 'library_paths': self.resources.lib_dirs, + 'libraries': libraries, + 'symbols': self.get_symbols(), + 'object_files': self.resources.objects, + 'sys_libs': self.toolchain.sys_libs, + 'cc_org': self.toolchain.cc[1:], + 'ld_org': self.toolchain.ld[1:], + 'cppc_org': self.toolchain.cppc[1:] + } + + # EmBlocks intermediate file template + self.gen_file('emblocks.eix.tmpl', ctx, '%s.eix' % self.program_name) |