mbed-os/tools/export/coide/__init__.py

117 lines
3.3 KiB
Python
Raw Normal View History

2014-01-12 08:03:46 +00:00
"""
mbed SDK
2016-07-26 20:30:59 +00:00
Copyright (c) 2014-2016 ARM Limited
2014-01-12 08:03:46 +00:00
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 os.path import splitext, basename
from os import remove
2014-01-12 08:03:46 +00:00
2017-07-11 16:15:31 +00:00
from tools.export.exporters import Exporter, deprecated_exporter
2017-01-17 18:12:24 +00:00
2014-01-12 08:03:46 +00:00
2017-07-11 16:15:31 +00:00
@deprecated_exporter
2014-01-12 08:03:46 +00:00
class CoIDE(Exporter):
NAME = 'CoIDE'
TOOLCHAIN = 'GCC_ARM'
TARGETS = [
'KL25Z',
'KL05Z',
'LPC1768',
'ARCH_PRO',
2015-03-20 00:32:51 +00:00
'ARCH_MAX',
2014-12-08 10:14:27 +00:00
'UBLOX_C027',
'NUCLEO_L053R8',
'NUCLEO_L152RE',
'NUCLEO_F030R8',
'NUCLEO_F042K6',
'NUCLEO_F070RB',
'NUCLEO_F072RB',
'NUCLEO_F091RC',
'NUCLEO_F103RB',
'NUCLEO_F302R8',
'NUCLEO_F303K8',
'NUCLEO_F303RE',
'NUCLEO_F334R8',
'NUCLEO_F401RE',
'NUCLEO_F410RB',
'NUCLEO_F411RE',
'NUCLEO_F446RE',
'DISCO_L053C8',
'DISCO_F051R8',
2014-12-31 16:17:50 +00:00
'DISCO_F100RB',
'DISCO_F303VC',
'DISCO_F334C8',
'DISCO_F401VC',
'DISCO_F407VG',
'DISCO_F429ZI',
'MTS_MDOT_F405RG',
'MTS_MDOT_F411RE',
Squashed commit of the following (PR #1023): commit 5390a0eb7fc28dda30993602652350fd0ad87df0 Merge: 7c4831f 3998966 Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Apr 23 08:48:31 2015 +0100 Merge branch 'master' of https://github.com/dudmuck/mbed into dudmuck-master Conflicts: workspace_tools/export/uvision4.py commit 3998966b1b130716855ac01142d8da917c3e1d2f Author: U-owner-PC\owner <Wayne Roberts> Date: Thu Apr 9 13:45:09 2015 -0700 using defines for platform specific requirement commit 755c5d9b0713768771d110468a6750abf506bb1c Author: U-owner-PC\owner <Wayne Roberts> Date: Wed Apr 8 14:59:47 2015 -0700 added device ID for MOTE_L152RC commit d812fb0002dbc1eea64984bdaf4c18b335979d7d Merge: 6ad66e8 158cbeb Author: U-owner-PC\owner <Wayne Roberts> Date: Wed Apr 8 07:25:23 2015 -0700 Merge remote-tracking branch 'upstream/master' commit 6ad66e89d818e595a9327710a9c79bee078b067f Merge: 14a1807 cfb9dd1 Author: U-owner-PC\owner <Wayne Roberts> Date: Fri Mar 27 15:54:03 2015 -0700 merged upstream commit 14a18078ca11b4126779914b02df6b75225e1315 Author: U-owner-PC\owner <Wayne Roberts> Date: Tue Mar 24 10:01:02 2015 -0700 RTC subSeconds at 16384Hz commit 32d75d04c18177b2fb823f011e002ec36190005a Merge: bc84c03 ea01d61 Author: U-owner-PC\owner <Wayne Roberts> Date: Tue Mar 24 09:59:43 2015 -0700 Merge remote-tracking branch 'upstream/master' commit bc84c03a37e10c819e55592aa1efcb621900460b Author: U-owner-PC\owner <Wayne Roberts> Date: Mon Mar 16 16:26:18 2015 -0700 handle HSE-PLL enabled upone deepsleep wakeup commit 11bfe693b9a03744b1624f943fa6ed0f6b05ede6 Merge: b7cec55 fdc75bf Author: U-owner-PC\owner <Wayne Roberts> Date: Mon Mar 16 14:37:11 2015 -0700 Merge remote-tracking branch 'upstream/master' commit b7cec55d08020fd007046ea93f0ed968e0fb953e Merge: c5b61f5 4b74c54 Author: U-owner-PC\owner <Wayne Roberts> Date: Mon Mar 9 13:15:56 2015 -0700 syncd with upstream commit c5b61f5c1d366a789b426f9147cee3fc6e8cd6e3 Merge: c16a115 9d2fd3e Author: U-owner-PC\owner <Wayne Roberts> Date: Tue Mar 3 14:05:54 2015 -0800 syncd with upstream commit c16a115e183b340589fb8d61f79ada1f1ce8a7e2 Merge: 51efd61 1b2a621 Author: U-owner-PC\owner <Wayne Roberts> Date: Tue Feb 24 09:48:55 2015 -0800 Merge remote-tracking branch 'upstream/master' commit 51efd619f14b0534037167d5a2080106a2ac0adc Author: U-owner-PC\owner <Wayne Roberts> Date: Tue Feb 24 09:48:22 2015 -0800 MOTE_L152RC commit a122226e460e2910dfcc8e379ac3484fd5ac5e78 Author: U-owner-PC\owner <Wayne Roberts> Date: Tue Feb 24 09:46:08 2015 -0800 renamed SEMTECH_LORA915 to MOTE_L152RC commit 88fcf53069d8a7e602ddfc997947d2871cb93ffa Merge: 3e291c1 8648ff5 Author: U-owner-PC\owner <Wayne Roberts> Date: Mon Feb 23 08:11:48 2015 -0800 Merge remote-tracking branch 'upstream/master' commit 3e291c1ccec69901c498b061a6108f0df4b6db2f Merge: a59aefc c9e93d2 Author: U-owner-PC\owner <Wayne Roberts> Date: Tue Feb 17 19:04:04 2015 -0800 Merge remote-tracking branch 'upstream/master' syncing my fork with master commit a59aefc6eddfeda6df91ad526f3727c2afcd1da2 Author: U-owner-PC\owner <Wayne Roberts> Date: Tue Feb 17 18:46:27 2015 -0800 added SEMTECH_LORA915 to python scripts commit 15b1989b692673edfa1d69ef7ffdd7b5795e9778 Author: U-owner-PC\owner <Wayne Roberts> Date: Tue Feb 17 18:42:13 2015 -0800 added platform SEMTECH_LORA915
2015-04-23 07:55:29 +00:00
'MOTE_L152RC',
'NZ32_SC151',
]
2014-01-12 10:34:35 +00:00
# seems like CoIDE currently supports only one type
FILE_TYPES = {
'c_sources':'1',
2014-01-12 10:34:35 +00:00
'cpp_sources':'1',
's_sources':'1'
}
FILE_TYPES2 = {
'headers':'1'
}
2014-01-12 08:03:46 +00:00
def generate(self):
self.resources.win_to_unix()
source_files = []
2018-01-12 21:46:44 +00:00
for r_type, n in CoIDE.FILE_TYPES.items():
for file in getattr(self.resources, r_type):
source_files.append({
2014-01-12 10:34:35 +00:00
'name': basename(file), 'type': n, 'path': file
})
header_files = []
2018-01-12 21:46:44 +00:00
for r_type, n in CoIDE.FILE_TYPES2.items():
for file in getattr(self.resources, r_type):
header_files.append({
'name': basename(file), 'type': n, 'path': file
})
2014-01-12 08:03:46 +00:00
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 = ''
2014-01-12 08:03:46 +00:00
ctx = {
'name': self.project_name,
'source_files': source_files,
'header_files': header_files,
2014-01-12 08:03:46 +00:00
'include_paths': self.resources.inc_dirs,
'scatter_file': self.resources.linker_script,
'library_paths': self.resources.lib_dirs,
2014-01-12 08:03:46 +00:00
'object_files': self.resources.objects,
'libraries': libraries,
'symbols': self.toolchain.get_symbols()
2014-01-12 08:03:46 +00:00
}
target = self.target.lower()
# Project file
2017-01-17 18:12:24 +00:00
self.gen_file('coide/%s.coproj.tmpl' % target, ctx, '%s.coproj' % self.project_name)
@staticmethod
def clean(project_name):
remove('%s.coproj' % project_name)