Clone of official tools
export/cdt/__init__.py
- Committer:
- Anders Blomdell
- Date:
- 2021-02-04
- Revision:
- 47:21ae3e5a7128
- Parent:
- 43:2a7da56ebd24
File content as of revision 47:21ae3e5a7128:
import re from os.path import join, exists from os import makedirs, remove import shutil from tools.export.makefile import Makefile, GccArm, Armc5, IAR class Eclipse(Makefile): """Generic Eclipse project. Intended to be subclassed by classes that specify a type of Makefile. """ def generate(self): """Generate Makefile, .cproject & .project Eclipse project file, py_ocd_settings launch file, and software link .p2f file """ super(Eclipse, self).generate() starting_dot = re.compile(r'(^[.]/|^[.]$)') ctx = { 'name': self.project_name, 'elf_location': join('BUILD',self.project_name)+'.elf', 'c_symbols': self.toolchain.get_symbols(), 'asm_symbols': self.toolchain.get_symbols(True), 'target': self.target, 'include_paths': [starting_dot.sub('%s/' % self.project_name, inc) for inc in self.resources.inc_dirs], 'load_exe': str(self.LOAD_EXE).lower() } if not exists(join(self.export_dir,'eclipse-extras')): makedirs(join(self.export_dir,'eclipse-extras')) self.gen_file('cdt/pyocd_settings.tmpl', ctx, join('eclipse-extras', '{target}_pyocd_{project}_settings.launch'.format(target=self.target, project=self.project_name))) self.gen_file('cdt/necessary_software.tmpl', ctx, join('eclipse-extras','necessary_software.p2f')) self.gen_file('cdt/.cproject.tmpl', ctx, '.cproject') self.gen_file('cdt/.project.tmpl', ctx, '.project') @staticmethod def clean(project_name): shutil.rmtree("eclipse-extras") remove(".cproject") remove(".project") class EclipseGcc(Eclipse, GccArm): LOAD_EXE = True NAME = "Eclipse-GCC-ARM" class EclipseArmc5(Eclipse, Armc5): LOAD_EXE = False NAME = "Eclipse-Armc5" class EclipseIAR(Eclipse, IAR): LOAD_EXE = True NAME = "Eclipse-IAR"