Clone of official tools

Revision:
29:1210849dba19
Parent:
24:25bff2709c20
Child:
31:8ea194f6145b
--- a/export/exporters.py	Mon Aug 29 10:55:42 2016 +0100
+++ b/export/exporters.py	Mon Aug 29 11:18:36 2016 +0100
@@ -43,7 +43,7 @@
         self.build_url_resolver = build_url_resolver
         jinja_loader = FileSystemLoader(os.path.dirname(os.path.abspath(__file__)))
         self.jinja_environment = Environment(loader=jinja_loader)
-        self.extra_symbols = extra_symbols
+        self.extra_symbols = extra_symbols if extra_symbols else []
         self.config_macros = []
         self.sources_relative = sources_relative
         self.config_header = None
@@ -59,6 +59,11 @@
     def progen_flags(self):
         if not hasattr(self, "_progen_flag_cache") :
             self._progen_flag_cache = dict([(key + "_flags", value) for key,value in self.flags.iteritems()])
+            asm_defines = ["-D"+symbol for symbol in self.toolchain.get_symbols(True)]
+            c_defines = ["-D" + symbol for symbol in self.toolchain.get_symbols()]
+            self._progen_flag_cache['asm_flags'] += asm_defines
+            self._progen_flag_cache['c_flags'] += c_defines
+            self._progen_flag_cache['cxx_flags'] += c_defines
             if self.config_header:
                 self._progen_flag_cache['c_flags'] += self.toolchain.get_config_option(self.config_header)
                 self._progen_flag_cache['cxx_flags'] += self.toolchain.get_config_option(self.config_header)
@@ -196,6 +201,7 @@
             self.config_header = self.toolchain.MBED_CONFIG_FILE_NAME
             config.get_config_data_header(join(trg_path, self.config_header))
             self.config_macros = []
+            self.resources.inc_dirs.append(".")
         else:
             # And add the configuration macros to the toolchain
             self.config_macros = config.get_config_data_macros()
@@ -213,11 +219,16 @@
         """ This function returns symbols which must be exported.
             Please add / overwrite symbols in each exporter separately
         """
-        symbols = self.toolchain.get_symbols() + self.config_macros
+
         # We have extra symbols from e.g. libraries, we want to have them also added to export
-        if add_extra_symbols:
-            if self.extra_symbols is not None:
-                symbols.extend(self.extra_symbols)
+        extra = self.extra_symbols if add_extra_symbols else []
+        if hasattr(self, "MBED_CONFIG_HEADER_SUPPORTED") and self.MBED_CONFIG_HEADER_SUPPORTED:
+            # If the config header is supported, we will preinclude it and do not not
+            # need the macros as preprocessor flags
+            return extra
+
+        symbols = self.toolchain.get_symbols(True) + self.toolchain.get_symbols() \
+                  + self.config_macros + extra
         return symbols
 
 def zip_working_directory_and_clean_up(tempdirectory=None, destination=None, program_name=None, clean=True):