Skip to content

Commit

Permalink
[cpp] support rt-thread CPP wrapper sub-switch macros
Browse files Browse the repository at this point in the history
  • Loading branch information
yangjie11 authored and mysterywolf committed Jun 14, 2023
1 parent edaa0d9 commit 593d794
Show file tree
Hide file tree
Showing 13 changed files with 40 additions and 14 deletions.
6 changes: 5 additions & 1 deletion components/libc/cplusplus/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@ menuconfig RT_USING_CPLUSPLUS
if RT_USING_CPLUSPLUS

config RT_USING_CPLUSPLUS11
bool "Enable c++11 threading feature support"
bool "Enable C++11 standard multi-threading feature support"
default n
select RT_USING_POSIX_FS
select RT_USING_POSIX_STDIO
select RT_USING_PTHREADS
select RT_USING_RTC

config RT_USING_CPP_WRAPPER
bool "Enable RT-Thread APIs C++ wrapper"
default n

endif
22 changes: 9 additions & 13 deletions components/libc/cplusplus/SConscript
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
# RT-Thread building script for component

from building import *
import os
Import('rtconfig')

cwd = GetCurrentDir()
src = Glob('*.cpp') + Glob('*.c')
cwd = GetCurrentDir()
src = ['cxx_crt_init.c', 'cxx_crt.cpp']
CPPPATH = [cwd]

if GetDepend('RT_USING_CPLUSPLUS11'):
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('CPP', src, depend=['RT_USING_CPLUSPLUS'], CPPPATH=CPPPATH)

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')
18 changes: 18 additions & 0 deletions components/libc/cplusplus/cpp11/SConscript
Original file line number Diff line number Diff line change
@@ -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')
8 changes: 8 additions & 0 deletions components/libc/cplusplus/os/SConscript
Original file line number Diff line number Diff line change
@@ -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')
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 593d794

Please sign in to comment.