[cpp] support rt-thread CPP wrapper sub-switch macros

This commit is contained in:
yangjie11 2023-06-12 14:32:48 +08:00 committed by Man, Jianting (Meco)
parent 49ae4ab614
commit c4df1d6a19
13 changed files with 40 additions and 14 deletions

View File

@ -5,11 +5,15 @@ menuconfig RT_USING_CPLUSPLUS
if RT_USING_CPLUSPLUS if RT_USING_CPLUSPLUS
config RT_USING_CPLUSPLUS11 config RT_USING_CPLUSPLUS11
bool "Enable c++11 threading feature support" bool "Enable C++11 standard multi-threading feature support"
default n default n
select RT_USING_POSIX_FS select RT_USING_POSIX_FS
select RT_USING_POSIX_STDIO select RT_USING_POSIX_STDIO
select RT_USING_PTHREADS select RT_USING_PTHREADS
select RT_USING_RTC select RT_USING_RTC
config RT_USING_CPP_WRAPPER
bool "Enable RT-Thread APIs C++ wrapper"
default n
endif endif

View File

@ -1,21 +1,17 @@
# RT-Thread building script for component
from building import * from building import *
import os
Import('rtconfig') Import('rtconfig')
cwd = GetCurrentDir() cwd = GetCurrentDir()
src = Glob('*.cpp') + Glob('*.c') src = ['cxx_crt_init.c', 'cxx_crt.cpp']
CPPPATH = [cwd] CPPPATH = [cwd]
if GetDepend('RT_USING_CPLUSPLUS11'): group = DefineGroup('CPP', src, depend=['RT_USING_CPLUSPLUS'], CPPPATH=CPPPATH)
src += Glob('cpp11/*.cpp') + Glob('cpp11/*.c')
if rtconfig.PLATFORM in ['armclang']:
src += Glob('cpp11/armclang/*.cpp') + Glob('cpp11/armclang/*.c')
CPPPATH += [cwd + '/cpp11/armclang']
elif rtconfig.PLATFORM in ['gcc']:
src += Glob('cpp11/gcc/*.cpp') + Glob('cpp11/gcc/*.c')
CPPPATH += [cwd + '/cpp11/gcc']
group = DefineGroup('CPlusPlus', src, depend = ['RT_USING_CPLUSPLUS'], CPPPATH = CPPPATH) list = os.listdir(cwd)
for d in list:
path = os.path.join(cwd, d)
if os.path.isfile(os.path.join(path, 'SConscript')):
group = group + SConscript(os.path.join(d, 'SConscript'))
Return('group') Return('group')

View File

@ -0,0 +1,18 @@
from building import *
Import('rtconfig')
cwd = GetCurrentDir()
src = []
CPPPATH = []
src += Glob('*.cpp') + Glob('*.c')
if rtconfig.PLATFORM in ['armclang']:
src += Glob('armclang/*.cpp') + Glob('armclang/*.c')
CPPPATH += [cwd + '/armclang']
elif rtconfig.PLATFORM in ['gcc']:
src += Glob('gcc/*.cpp') + Glob('gcc/*.c')
CPPPATH += [cwd + '/gcc']
group = DefineGroup('CPP', src, depend=['RT_USING_CPLUSPLUS11'], CPPPATH=CPPPATH)
Return('group')

View File

@ -0,0 +1,8 @@
from building import *
cwd = GetCurrentDir()
src = Glob('*.cpp')
CPPPATH = [cwd]
group = DefineGroup('CPP', src, depend=['RT_USING_CPP_WRAPPER'], CPPPATH=CPPPATH)
Return('group')