Skip to content

Commit

Permalink
为c++增加 rt-thread 多线程支持的子开关
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 cf8ade0
Show file tree
Hide file tree
Showing 13 changed files with 39 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
21 changes: 8 additions & 13 deletions components/libc/cplusplus/SConscript
Original file line number Diff line number Diff line change
@@ -1,21 +1,16 @@
# 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)
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 cf8ade0

Please sign in to comment.