Browse Source

[tools] add GetGCCLikePLATFORM
GCC like means the toolchains which are compatible with GCC

Meco Man 1 year ago
parent
commit
30c793fdb9

+ 2 - 1
bsp/renesas/ra6m3-hmi-board/SConscript

@@ -3,6 +3,7 @@ import os
 Import('RTT_ROOT')
 Import('rtconfig')
 from building import *
+from gcc import *
 
 cwd = GetCurrentDir()
 src = []
@@ -12,7 +13,7 @@ list = os.listdir(cwd)
 if rtconfig.PLATFORM in ['iccarm']:
     print("\nThe current project does not support IAR build\n")
     Return('group')
-elif rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']:
+elif rtconfig.PLATFORM in GetGCCLikePLATFORM():
     if GetOption('target') != 'mdk5':
         CPPPATH = [cwd]
         src = Glob('./src/*.c')

+ 2 - 1
bsp/renesas/ra6m3-hmi-board/ra/SConscript

@@ -1,6 +1,7 @@
 Import('RTT_ROOT')
 Import('rtconfig')
 from building import *
+from gcc import *
 
 cwd = GetCurrentDir()
 src = []
@@ -10,7 +11,7 @@ CPPPATH = []
 if rtconfig.PLATFORM in ['iccarm']:
     print("\nThe current project does not support IAR build\n")
     Return('group')
-elif rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']:
+elif rtconfig.PLATFORM in GetGCCLikePLATFORM():
     if GetOption('target') != 'mdk5':
         src += Glob(cwd + '/fsp/src/bsp/mcu/all/*.c')
         src += [cwd + '/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c']

+ 2 - 1
bsp/renesas/ra6m3-hmi-board/ra_cfg/SConscript

@@ -1,6 +1,7 @@
 Import('RTT_ROOT')
 Import('rtconfig')
 from building import *
+from gcc import *
 
 cwd = GetCurrentDir()
 src = []
@@ -10,7 +11,7 @@ CPPPATH = []
 if rtconfig.PLATFORM in ['iccarm']:
     print("\nThe current project does not support IAR build\n")
     Return('group')
-elif rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']:
+elif rtconfig.PLATFORM in GetGCCLikePLATFORM():
     if GetOption('target') != 'mdk5':
         src = Glob('*.c')
         CPPPATH = [cwd+'/fsp_cfg', cwd + '/fsp_cfg/bsp']

+ 2 - 1
bsp/renesas/ra6m3-hmi-board/ra_gen/SConscript

@@ -1,6 +1,7 @@
 Import('RTT_ROOT')
 Import('rtconfig')
 from building import *
+from gcc import *
 
 cwd = GetCurrentDir()
 src = []
@@ -10,7 +11,7 @@ CPPPATH = []
 if rtconfig.PLATFORM in ['iccarm']:
     print("\nThe current project does not support IAR build\n")
     Return('group')
-elif rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']:
+elif rtconfig.PLATFORM in GetGCCLikePLATFORM():
     if GetOption('target') != 'mdk5':
         src = Glob('*.c')
         CPPPATH = [cwd, ]

+ 2 - 1
components/drivers/spi/SConscript

@@ -1,4 +1,5 @@
 from building import *
+from gcc import *
 import rtconfig
 
 cwd = GetCurrentDir()
@@ -29,7 +30,7 @@ if GetDepend('RT_USING_SFUD'):
     if GetDepend('RT_SFUD_USING_SFDP'):
         src_device += ['sfud/src/sfud_sfdp.c']
 
-    if rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm']:
+    if rtconfig.PLATFORM in GetGCCLikePLATFORM():
         LOCAL_CFLAGS += ' -std=c99'
     elif rtconfig.PLATFORM in ['armcc']:
         LOCAL_CFLAGS += ' --c99'

+ 2 - 2
components/libc/cplusplus/SConscript

@@ -1,4 +1,5 @@
 from building import *
+from gcc import *
 import os
 Import('rtconfig')
 
@@ -7,8 +8,7 @@ src     = ['cxx_crt_init.c', 'cxx_crt.cpp']
 CPPPATH = [cwd]
 CXXFLAGS = ''
 
-
-if rtconfig.PLATFORM in ['gcc', 'armclang', 'llvm-arm'] and not GetDepend('RT_USING_CPP_EXCEPTIONS'):
+if rtconfig.PLATFORM in GetGCCLikePLATFORM() and not GetDepend('RT_USING_CPP_EXCEPTIONS'):
     CXXFLAGS += ' -fno-exceptions -fno-rtti -ffunction-sections -fdata-sections -Wl,--gc-sections' # reduce resource consumptions
 
 group = DefineGroup('CPP', src, depend=['RT_USING_CPLUSPLUS'], CPPPATH=CPPPATH, CXXFLAGS=CXXFLAGS)

+ 4 - 0
tools/gcc.py

@@ -66,6 +66,10 @@ def CheckHeader(rtconfig, filename):
 
     return False
 
+# GCC like means the toolchains which are compatible with GCC
+def GetGCCLikePLATFORM():
+    return ['gcc', 'armclang', 'llvm-arm']
+
 def GetNewLibVersion(rtconfig):
     version = None
     root = GetGCCRoot(rtconfig)