summaryrefslogtreecommitdiff
path: root/components/libc/cplusplus
diff options
context:
space:
mode:
authoryangjie11 <[email protected]>2023-06-12 14:32:48 +0800
committerMan, Jianting (Meco) <[email protected]>2023-06-14 08:49:33 -0400
commitc4df1d6a19c2ab9c67b42150adb81f49757b6f8c (patch)
tree39477b08669f30cceb0a73fa866f400155cae9fe /components/libc/cplusplus
parent49ae4ab6143ae5d3c818c6884b1e1ff8b085f1a8 (diff)
[cpp] support rt-thread CPP wrapper sub-switch macros
Diffstat (limited to 'components/libc/cplusplus')
-rw-r--r--components/libc/cplusplus/Kconfig6
-rw-r--r--components/libc/cplusplus/SConscript22
-rw-r--r--components/libc/cplusplus/cpp11/SConscript18
-rw-r--r--components/libc/cplusplus/os/SConscript8
-rw-r--r--components/libc/cplusplus/os/cxx_Mutex.cpp (renamed from components/libc/cplusplus/cxx_Mutex.cpp)0
-rw-r--r--components/libc/cplusplus/os/cxx_Semaphore.cpp (renamed from components/libc/cplusplus/cxx_Semaphore.cpp)0
-rw-r--r--components/libc/cplusplus/os/cxx_Thread.cpp (renamed from components/libc/cplusplus/cxx_Thread.cpp)0
-rw-r--r--components/libc/cplusplus/os/cxx_lock.h (renamed from components/libc/cplusplus/cxx_lock.h)0
-rw-r--r--components/libc/cplusplus/os/cxx_mail.h (renamed from components/libc/cplusplus/cxx_mail.h)0
-rw-r--r--components/libc/cplusplus/os/cxx_mutex.h (renamed from components/libc/cplusplus/cxx_mutex.h)0
-rw-r--r--components/libc/cplusplus/os/cxx_queue.h (renamed from components/libc/cplusplus/cxx_queue.h)0
-rw-r--r--components/libc/cplusplus/os/cxx_semaphore.h (renamed from components/libc/cplusplus/cxx_semaphore.h)0
-rw-r--r--components/libc/cplusplus/os/cxx_thread.h (renamed from components/libc/cplusplus/cxx_thread.h)0
13 files changed, 40 insertions, 14 deletions
diff --git a/components/libc/cplusplus/Kconfig b/components/libc/cplusplus/Kconfig
index c7268e7b9a..e049f65629 100644
--- a/components/libc/cplusplus/Kconfig
+++ b/components/libc/cplusplus/Kconfig
@@ -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
diff --git a/components/libc/cplusplus/SConscript b/components/libc/cplusplus/SConscript
index 760049c139..a7829cea6d 100644
--- a/components/libc/cplusplus/SConscript
+++ b/components/libc/cplusplus/SConscript
@@ -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')
diff --git a/components/libc/cplusplus/cpp11/SConscript b/components/libc/cplusplus/cpp11/SConscript
new file mode 100644
index 0000000000..0d96a06269
--- /dev/null
+++ b/components/libc/cplusplus/cpp11/SConscript
@@ -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')
diff --git a/components/libc/cplusplus/os/SConscript b/components/libc/cplusplus/os/SConscript
new file mode 100644
index 0000000000..5bda46087a
--- /dev/null
+++ b/components/libc/cplusplus/os/SConscript
@@ -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')
diff --git a/components/libc/cplusplus/cxx_Mutex.cpp b/components/libc/cplusplus/os/cxx_Mutex.cpp
index da6f80985f..da6f80985f 100644
--- a/components/libc/cplusplus/cxx_Mutex.cpp
+++ b/components/libc/cplusplus/os/cxx_Mutex.cpp
diff --git a/components/libc/cplusplus/cxx_Semaphore.cpp b/components/libc/cplusplus/os/cxx_Semaphore.cpp
index 672eeb04af..672eeb04af 100644
--- a/components/libc/cplusplus/cxx_Semaphore.cpp
+++ b/components/libc/cplusplus/os/cxx_Semaphore.cpp
diff --git a/components/libc/cplusplus/cxx_Thread.cpp b/components/libc/cplusplus/os/cxx_Thread.cpp
index f3484bb1f4..f3484bb1f4 100644
--- a/components/libc/cplusplus/cxx_Thread.cpp
+++ b/components/libc/cplusplus/os/cxx_Thread.cpp
diff --git a/components/libc/cplusplus/cxx_lock.h b/components/libc/cplusplus/os/cxx_lock.h
index c3cc1d2dae..c3cc1d2dae 100644
--- a/components/libc/cplusplus/cxx_lock.h
+++ b/components/libc/cplusplus/os/cxx_lock.h
diff --git a/components/libc/cplusplus/cxx_mail.h b/components/libc/cplusplus/os/cxx_mail.h
index 88770bdd94..88770bdd94 100644
--- a/components/libc/cplusplus/cxx_mail.h
+++ b/components/libc/cplusplus/os/cxx_mail.h
diff --git a/components/libc/cplusplus/cxx_mutex.h b/components/libc/cplusplus/os/cxx_mutex.h
index 63efb4a6ea..63efb4a6ea 100644
--- a/components/libc/cplusplus/cxx_mutex.h
+++ b/components/libc/cplusplus/os/cxx_mutex.h
diff --git a/components/libc/cplusplus/cxx_queue.h b/components/libc/cplusplus/os/cxx_queue.h
index f6b91e1a21..f6b91e1a21 100644
--- a/components/libc/cplusplus/cxx_queue.h
+++ b/components/libc/cplusplus/os/cxx_queue.h
diff --git a/components/libc/cplusplus/cxx_semaphore.h b/components/libc/cplusplus/os/cxx_semaphore.h
index 45c916e169..45c916e169 100644
--- a/components/libc/cplusplus/cxx_semaphore.h
+++ b/components/libc/cplusplus/os/cxx_semaphore.h
diff --git a/components/libc/cplusplus/cxx_thread.h b/components/libc/cplusplus/os/cxx_thread.h
index 0e681e5c2a..0e681e5c2a 100644
--- a/components/libc/cplusplus/cxx_thread.h
+++ b/components/libc/cplusplus/os/cxx_thread.h