Clone of official tools

Revision:
35:da9c89f8be7d
Parent:
34:42f20e28adf5
Child:
36:96847d42f010
--- a/export/uvision4.py	Mon Feb 13 09:29:13 2017 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-"""
-mbed SDK
-Copyright (c) 2011-2013 ARM Limited
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-"""
-from os.path import basename, join, dirname
-from project_generator_definitions.definitions import ProGenDef
-
-from tools.export.exporters import Exporter, ExporterTargetsProperty
-from tools.targets import TARGET_MAP, TARGET_NAMES
-
-# If you wish to add a new target, add it to project_generator_definitions, and then
-# define progen_target name in the target class (`` self.progen_target = 'my_target_name' ``)
-# There are 2 default mbed templates (predefined settings) uvision.uvproj and uvproj_microlib.uvproj.tmpl
-class Uvision4(Exporter):
-    """
-    Exporter class for uvision. This class uses project generator.
-    """
-    # These 2 are currently for exporters backward compatiblity
-    NAME = 'uVision4'
-    TOOLCHAIN = 'ARM'
-    # PROGEN_ACTIVE contains information for exporter scripts that this is using progen
-    PROGEN_ACTIVE = True
-
-    MBED_CONFIG_HEADER_SUPPORTED = True
-
-    @ExporterTargetsProperty
-    def TARGETS(cls):
-        if not hasattr(cls, "_targets_supported"):
-            cls._targets_supported = []
-            progendef = ProGenDef('uvision')
-            for target in TARGET_NAMES:
-                try:
-                    if (progendef.is_supported(str(TARGET_MAP[target])) or
-                        progendef.is_supported(TARGET_MAP[target].progen['target'])):
-                        cls._targets_supported.append(target)
-                except AttributeError:
-                    # target is not supported yet
-                    continue
-        return cls._targets_supported
-
-    def get_toolchain(self):
-        return TARGET_MAP[self.target].default_toolchain
-
-    def generate(self, progen_build=False):
-        """ Generates the project files """
-        project_data = self.progen_get_project_data()
-        tool_specific = {}
-        # Expand tool specific settings by uvision specific settings which are required
-        try:
-            if TARGET_MAP[self.target].progen['uvision']['template']:
-                tool_specific['uvision'] = TARGET_MAP[self.target].progen['uvision']
-        except KeyError:
-            # use default template
-            # by the mbed projects
-            tool_specific['uvision'] = {
-                    'template': [join(dirname(__file__),  'uvision.uvproj.tmpl')],
-            }
-
-        project_data['tool_specific'] = {}
-        project_data['tool_specific'].update(tool_specific)
-
-        # get flags from toolchain and apply
-        project_data['tool_specific']['uvision']['misc'] = {}
-        # need to make this a string for progen. Only adds preprocessor when "macros" set
-        asm_flag_string = '--cpreproc --cpreproc_opts=-D__ASSERT_MSG,' + ",".join(
-            list(set(self.progen_flags['asm_flags'])))
-        project_data['tool_specific']['uvision']['misc']['asm_flags'] = [asm_flag_string]
-        # cxx flags included, as uvision have them all in one tab
-        project_data['tool_specific']['uvision']['misc']['c_flags'] = list(set(
-            ['-D__ASSERT_MSG'] + self.progen_flags['common_flags'] + self.progen_flags['c_flags'] + self.progen_flags[
-                'cxx_flags']))
-        # not compatible with c99 flag set in the template
-        project_data['tool_specific']['uvision']['misc']['c_flags'].remove("--c99")
-        # cpp is not required as it's implicit for cpp files
-        project_data['tool_specific']['uvision']['misc']['c_flags'].remove("--cpp")
-        # we want no-vla for only cxx, but it's also applied for C in IDE, thus we remove it
-        project_data['tool_specific']['uvision']['misc']['c_flags'].remove("--no_vla")
-        project_data['tool_specific']['uvision']['misc']['ld_flags'] = self.progen_flags['ld_flags']
-
-        project_data['common']['build_dir'] = project_data['common']['build_dir'] + '\\' + 'uvision4'
-        if progen_build:
-            self.progen_gen_file('uvision', project_data, True)
-        else:
-            self.progen_gen_file('uvision', project_data)