the other jimmy / mbed-sdk-tools

Fork of mbed-sdk-tools by mbed official

Revision:
23:fbae331171fa
Parent:
20:835f6355470d
Child:
24:25bff2709c20
--- a/export/uvision5.py	Sat Jul 16 00:34:03 2016 +0100
+++ b/export/uvision5.py	Sat Jul 16 22:51:17 2016 +0100
@@ -36,20 +36,27 @@
     MBED_CONFIG_HEADER_SUPPORTED = True
 
     # backward compatibility with our scripts
-    TARGETS = []
-    for target in TARGET_NAMES:
-        try:
-            if (ProGenDef('uvision5').is_supported(str(TARGET_MAP[target])) or
-                ProGenDef('uvision5').is_supported(TARGET_MAP[target].progen['target'])):
-                TARGETS.append(target)
-        except AttributeError:
-            # target is not supported yet
-            continue
+    def __init__(self):
+        self._targets = []
+
+    @property
+    def TARGETS(self):
+        if not hasattr(self, "_targets_supported"):
+            self._targets_supported = []
+            for target in TARGET_NAMES:
+                try:
+                    if (ProGenDef('uvision5').is_supported(str(TARGET_MAP[target])) or
+                        ProGenDef('uvision5').is_supported(TARGET_MAP[target].progen['target'])):
+                        self._targets_supported.append(target)
+                except AttributeError:
+                    # target is not supported yet
+                    continue
+        return self._targets_supported
 
     def get_toolchain(self):
         return TARGET_MAP[self.target].default_toolchain
 
-    def generate(self):
+    def generate(self, progen_build=False):
         """ Generates the project files """
         project_data = self.progen_get_project_data()
         tool_specific = {}
@@ -93,4 +100,7 @@
             i += 1
         project_data['common']['macros'].append('__ASSERT_MSG')
         project_data['common']['build_dir'] = project_data['common']['build_dir'] + '\\' + 'uvision5'
-        self.progen_gen_file('uvision5', project_data)
+        if progen_build:
+            self.progen_gen_file('uvision5', project_data, True)
+        else:
+            self.progen_gen_file('uvision5', project_data)