Clone of official tools
Diff: export/iar/__init__.py
- Revision:
- 38:399953da035d
- Parent:
- 36:96847d42f010
- Child:
- 40:7d3fa6b99b2b
--- a/export/iar/__init__.py Fri Jul 07 16:20:25 2017 -0500 +++ b/export/iar/__init__.py Thu Jul 13 15:26:26 2017 -0500 @@ -13,31 +13,33 @@ from tools.utils import NotSupportedException from multiprocessing import cpu_count + +def _supported(mcu, iar_targets): + if "IAR" not in mcu.supported_toolchains: + return False + if hasattr(mcu, 'device_name') and mcu.device_name in iar_targets: + return True + if mcu.name in iar_targets: + return True + return False + + +_iar_defs = os.path.join( + os.path.dirname(os.path.abspath(__file__)), 'iar_definitions.json') + +with open(_iar_defs, 'r') as f: + _GUI_OPTIONS = json.load(f) + +_IAR_TARGETS = [target for target, obj in TARGET_MAP.iteritems() if + _supported(obj, _GUI_OPTIONS.keys())] + + class IAR(Exporter): NAME = 'iar' TOOLCHAIN = 'IAR' - #iar_definitions.json location - def_loc = os.path.join( - os.path.dirname(os.path.abspath(__file__)), 'iar_definitions.json') - - #create a dictionary of the definitions - with open(def_loc, 'r') as f: - IAR_DEFS = json.load(f) + TARGETS = _IAR_TARGETS - def _iar_support(tgt, iar_targets): - if "IAR" not in tgt.supported_toolchains: - return False - if hasattr(tgt, 'device_name') and tgt.device_name in iar_targets: - return True - if tgt.name in iar_targets: - return True - return False - - #supported targets have a name or device_name which maps to a definition - #in iar_definitions.json - TARGETS = [target for target, obj in TARGET_MAP.iteritems() if - _iar_support(obj, IAR_DEFS.keys())] def iar_groups(self, grouped_src): """Return a namedtuple of group info @@ -67,7 +69,7 @@ tgt = TARGET_MAP[self.target] device_name = (tgt.device_name if hasattr(tgt, "device_name") else tgt.name) - device_info = self.IAR_DEFS[device_name] + device_info = _GUI_OPTIONS[device_name] iar_defaults ={ "OGChipSelectEditMenu": "", "CoreVariant": '', @@ -191,3 +193,5 @@ return -1 else: return 0 + +