nuttx/libs/libxx/Kconfig
SPRESENSE bf6606f80c libxx: Use gnu++20 option only if using libcxx
Fix an issue that gnu++20 option is always used.
Essentially, when cxx is not used, gnu++17 should be retained.
2023-10-05 13:09:20 +08:00

123 lines
2.6 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 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
---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 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 "15.0.7" 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 "15.0.7"
endif