Clone of official tools

Committer:
theotherjimmy
Date:
Tue Oct 10 16:56:30 2017 -0500
Revision:
40:7d3fa6b99b2b
Parent:
35:da9c89f8be7d
Child:
43:2a7da56ebd24
Update to tools release 5.6.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
The Other Jimmy 35:da9c89f8be7d 1 import re
The Other Jimmy 35:da9c89f8be7d 2
theotherjimmy 40:7d3fa6b99b2b 3 from os.path import join, exists
The Other Jimmy 31:8ea194f6145b 4 from os import makedirs
The Other Jimmy 31:8ea194f6145b 5
The Other Jimmy 31:8ea194f6145b 6 from tools.export.makefile import Makefile, GccArm, Armc5, IAR
The Other Jimmy 31:8ea194f6145b 7
The Other Jimmy 31:8ea194f6145b 8 class Eclipse(Makefile):
The Other Jimmy 31:8ea194f6145b 9 """Generic Eclipse project. Intended to be subclassed by classes that
The Other Jimmy 31:8ea194f6145b 10 specify a type of Makefile.
The Other Jimmy 31:8ea194f6145b 11 """
The Other Jimmy 31:8ea194f6145b 12 def generate(self):
The Other Jimmy 31:8ea194f6145b 13 """Generate Makefile, .cproject & .project Eclipse project file,
The Other Jimmy 31:8ea194f6145b 14 py_ocd_settings launch file, and software link .p2f file
The Other Jimmy 31:8ea194f6145b 15 """
The Other Jimmy 31:8ea194f6145b 16 super(Eclipse, self).generate()
The Other Jimmy 35:da9c89f8be7d 17 starting_dot = re.compile(r'(^[.]/|^[.]$)')
The Other Jimmy 31:8ea194f6145b 18 ctx = {
The Other Jimmy 31:8ea194f6145b 19 'name': self.project_name,
The Other Jimmy 31:8ea194f6145b 20 'elf_location': join('BUILD',self.project_name)+'.elf',
The Other Jimmy 31:8ea194f6145b 21 'c_symbols': self.toolchain.get_symbols(),
The Other Jimmy 31:8ea194f6145b 22 'asm_symbols': self.toolchain.get_symbols(True),
The Other Jimmy 31:8ea194f6145b 23 'target': self.target,
The Other Jimmy 35:da9c89f8be7d 24 'include_paths': [starting_dot.sub('%s/' % self.project_name, inc) for inc in self.resources.inc_dirs],
The Other Jimmy 31:8ea194f6145b 25 'load_exe': str(self.LOAD_EXE).lower()
The Other Jimmy 31:8ea194f6145b 26 }
The Other Jimmy 31:8ea194f6145b 27
The Other Jimmy 31:8ea194f6145b 28 if not exists(join(self.export_dir,'eclipse-extras')):
The Other Jimmy 31:8ea194f6145b 29 makedirs(join(self.export_dir,'eclipse-extras'))
The Other Jimmy 31:8ea194f6145b 30
The Other Jimmy 31:8ea194f6145b 31
The Other Jimmy 31:8ea194f6145b 32 self.gen_file('cdt/pyocd_settings.tmpl', ctx,
theotherjimmy 40:7d3fa6b99b2b 33 join('eclipse-extras',
theotherjimmy 40:7d3fa6b99b2b 34 '{target}_pyocd_{project}_settings.launch'.format(target=self.target,
theotherjimmy 40:7d3fa6b99b2b 35 project=self.project_name)))
The Other Jimmy 31:8ea194f6145b 36 self.gen_file('cdt/necessary_software.tmpl', ctx,
The Other Jimmy 31:8ea194f6145b 37 join('eclipse-extras','necessary_software.p2f'))
The Other Jimmy 31:8ea194f6145b 38
The Other Jimmy 31:8ea194f6145b 39 self.gen_file('cdt/.cproject.tmpl', ctx, '.cproject')
The Other Jimmy 31:8ea194f6145b 40 self.gen_file('cdt/.project.tmpl', ctx, '.project')
The Other Jimmy 31:8ea194f6145b 41
The Other Jimmy 31:8ea194f6145b 42
The Other Jimmy 31:8ea194f6145b 43 class EclipseGcc(Eclipse, GccArm):
The Other Jimmy 31:8ea194f6145b 44 LOAD_EXE = True
The Other Jimmy 31:8ea194f6145b 45 NAME = "Eclipse-GCC-ARM"
The Other Jimmy 31:8ea194f6145b 46
The Other Jimmy 31:8ea194f6145b 47 class EclipseArmc5(Eclipse, Armc5):
The Other Jimmy 31:8ea194f6145b 48 LOAD_EXE = False
The Other Jimmy 31:8ea194f6145b 49 NAME = "Eclipse-Armc5"
The Other Jimmy 31:8ea194f6145b 50
The Other Jimmy 31:8ea194f6145b 51 class EclipseIAR(Eclipse, IAR):
The Other Jimmy 31:8ea194f6145b 52 LOAD_EXE = True
The Other Jimmy 31:8ea194f6145b 53 NAME = "Eclipse-IAR"
The Other Jimmy 31:8ea194f6145b 54
The Other Jimmy 31:8ea194f6145b 55