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/uvision4.py	Sat Jul 16 00:34:03 2016 +0100
+++ b/export/uvision4.py	Sat Jul 16 22:51:17 2016 +0100
@@ -35,21 +35,24 @@
 
     MBED_CONFIG_HEADER_SUPPORTED = True
 
-    # backward compatibility with our scripts
-    TARGETS = []
-    for target in TARGET_NAMES:
-        try:
-            if (ProGenDef('uvision').is_supported(str(TARGET_MAP[target])) or
-                ProGenDef('uvision').is_supported(TARGET_MAP[target].progen['target'])):
-                TARGETS.append(target)
-        except AttributeError:
-            # target is not supported yet
-            continue
+    @property
+    def TARGETS(self):
+        if not hasattr(self, "_targets_supported"):
+            self._targets_supported = []
+            for target in TARGET_NAMES:
+                try:
+                    if (ProGenDef('uvision').is_supported(str(TARGET_MAP[target])) or
+                        ProGenDef('uvision').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 +96,7 @@
             i += 1
         project_data['common']['macros'].append('__ASSERT_MSG')
         project_data['common']['build_dir'] = project_data['common']['build_dir'] + '\\' + 'uvision4'
-        self.progen_gen_file('uvision', project_data)
+        if progen_build:
+            self.progen_gen_file('uvision', project_data, True)
+        else:
+            self.progen_gen_file('uvision', project_data)