#
# 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 C99_BOOL8
	bool "sizeof(_Bool) is 8-bits"
	default n
	---help---
		This setting means (1) your C++ compiler has sizeof(_Bool) == 8, (2)
		your C compiler supports the C99 _Bool intrinsic type, and (2) that
		the C99 _Bool type also has size 1.

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.

if HAVE_CXX

choice
	prompt "C++ Library"
	default NUTTX_LIBXX

config NUTTX_LIBXX
	bool "NuttX C++ library"
	---help---
		A fragmentary C++ library that will allow to build only
		the simplest of C++ applications.  In the deeply embedded world,
		that is probably all that is necessary.

config LIBCXX
	bool "LLVM libc++ C++ Standard Library"
	select CLOCK_MONOTONIC
	select LIBC_WCHAR
	select LIBC_LOCALE
	---help---
		LLVM "libc++" C++ Standard Library
		https://libcxx.llvm.org/

config UCLIBCXX
	bool "uClibc++ Standard C++ Library"
	---help---
		uClibc++ C++ library
		https://cxx.uclibc.org/

endchoice

config HAVE_CXXINITIALIZE
	bool "Have C++ initialization"
	default LIBCXX || UCLIBCXX
	---help---
		The platform-specific logic includes support for initialization
		of static C++ instances for this architecture and for the selected
		toolchain (via up_cxxinitialize()).

config CXX_EXCEPTION
	bool "Enable Exception Support"
	default LIBCXX || UCLIBCXX

config CXX_LIBSUPCXX
	bool "Have libsupc++ (required)"
	default LIBCXX || UCLIBCXX
	---help---
		Select if your toolchain provides libsupc++.  This option is required
		at present because the built-in libsupc++ support is incomplete.

if UCLIBCXX

config UCLIBCXX_BUFSIZE
	int "IO Stream/Container Buffer Size"
	default 32

endif
endif
