# Kconfig - C++ configuration options

#
# Copyright (c) 2018 B. Leforestier
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig CPLUSPLUS
	bool "C++ support for the application"
	help
	  This option enables the use of applications built with C++.

if CPLUSPLUS

choice
	prompt "C++ Standard"
	default STD_CPP11
	help
	  C++ Standards.

config STD_CPP98
	bool "C++ 98"
	help
	  1998 C++ standard as modified by the 2003 technical corrigendum
	  and some later defect reports.

config STD_CPP11
	bool "C++ 11"
	help
	  2011 C++ standard, previously known as C++0x.

config STD_CPP14
	bool "C++ 14"
	help
	  2014 C++ standard.

config STD_CPP17
	bool "C++ 17"
	help
	  2017 C++ standard, previously known as C++0x.

config STD_CPP2A
	bool "C++ 2a"
	help
	  Next revision of the C++ standard, which is expected to be published in 2020.

endchoice

config LIB_CPLUSPLUS
	bool "Link with STD C++ library"
	help
	  Link with STD C++ Library.

config EXCEPTIONS
	bool "Enable C++ exceptions support"
	select LIB_CPLUSPLUS
	depends on !MINIMAL_LIBC
	help
	  This option enables support of C++ exceptions.

config RTTI
	bool "Enable C++ RTTI support"
	select LIB_CPLUSPLUS
	help
	  This option enables support of C++ RTTI.

if LIB_CPLUSPLUS

config ZEPHYR_CPLUSPLUS
	bool "Use Zephyr C++ Implementation"
	help
	  Use Zephyr implementation for operator new, delete, pure virtual
	  functions and vtables.

endif # LIB_CPLUSPLUS

endif # CPLUSPLUS
