incubator-nuttx/libs/libxx/Kconfig

132 lines
2.8 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
comment "Basic CXX Support"
config HAVE_CXX
bool "Have C++ compiler"
default n
---help---
Toolchain supports C++ and CXX, CXXFLAGS, and COMPILEXX have been
defined in the configurations Make.defs file.
config HAVE_CXXINITIALIZE
bool "Have C++ initialization"
default n
---help---
The platform-specific logic includes support for initialization
of static C++ instances for this architecture and for the selected
toolchain.
if HAVE_CXX
choice
prompt "C++ Library"
default LIBCXXMINI
config LIBCXXTOOLCHAIN
bool "Toolchain C++ support"
select HAVE_CXXINITIALIZE
select LIBC_LOCALE
---help---
Use Standard C++ library from toolchain.
config LIBCXXMINI
bool "Basic C++ support"
---help---
A fragmentary C++ library that will allow to build only
the simplest of C++ applications. Only contain basic C++
runtime support function.
config LIBCXX
bool "LLVM libc++ C++ Standard Library"
select HAVE_CXXINITIALIZE
select LIBC_LOCALE
select PTHREAD_MUTEX_TYPES
depends on TLS_NELEM > 0
---help---
LLVM "libc++" C++ Standard Library
https://libcxx.llvm.org/
config UCLIBCXX
bool "uClibc++ Standard C++ Library"
select HAVE_CXXINITIALIZE
---help---
uClibc++ C++ library
https://cxx.uclibc.org/
endchoice
config ETL
bool "Embedded Template Library (ETL)"
depends on LIBCXXMINI && ALLOW_MIT_COMPONENTS
---help---
ETL A C++ Template library for Embedded applications
Implements C++ templates such as containers, string
singleton math without C++ STL libraries
if LIBCXX || UCLIBCXX
choice
prompt "C++ low level library select"
default LIBCXXABI if LIBCXX
default LIBSUPCXX
config LIBCXXABI
bool "LLVM low level C++ Library"
---help---
LLVM "libc++abi" C++ Standard Library
https://libcxxabi.llvm.org/
Select if your use libc++abi as lower level c++ library
config LIBSUPCXX
bool "GNU low level libsupc++"
---help---
Select if your toolchain provides libsupc++ and use libsupc++ as lower
level c++ library.
endchoice
config LIBCXXABI_VERSION
string "Select libcxxabi version"
depends on LIBCXXABI
default LIBCXX_VERSION if LIBCXX
default "17.0.6" if !LIBCXX
endif
config CXX_STANDARD
string "Language standard"
default "gnu++20" if LIBCXX
default "gnu++17" if !LIBCXX
---help---
Possible values:
gnu++98/c++98, gnu++11/c++11, gnu++14/c++14, gnu++17/c++17 and gnu++20/c++20
config CXX_EXCEPTION
bool "Enable Exception Support"
config CXX_RTTI
bool "Enable RTTI Support"
if UCLIBCXX
config UCLIBCXX_WCHAR
bool "Enable Wide Stream Support"
default n
config UCLIBCXX_BUFSIZE
int "IO Stream/Container Buffer Size"
default 32
endif
config LIBCXX_VERSION
string "Select libcxx version"
depends on LIBCXX
default "17.0.6"
endif