# 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. config STD_CPP20 bool "C++ 20" help 2020 C++ standard, previously known as C++2A. config STD_CPP2B bool "C++ 2b" help Next revision of the C++ standard, which is expected to be published in 2023. endchoice config CPP_MAIN bool "C++ main() function definition" help This option instructs the Zephyr kernel to call the 'int main(void)' instead of the 'void main(void)', which is the default main() type for Zephyr. C++ does not allow the main() to be defined with 'void' return type, and any applications defining its main() in a C++ source file must enable this option. config LIB_CPLUSPLUS bool "Link with STD C++ library" select REQUIRES_FULL_LIBC help Link with STD C++ Library. if LIB_CPLUSPLUS config EXCEPTIONS bool "C++ exceptions support" depends on !NEWLIB_LIBC_NANO help This option enables support of C++ exceptions. config RTTI bool "C++ RTTI support" help This option enables support of C++ RTTI. endif # LIB_CPLUSPLUS config CPP_STATIC_INIT_GNU # As of today only ARC MWDT toolchain doesn't support GNU-compatible # initialization of CPP static objects, new toolchains can be added # here if required. def_bool "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "arcmwdt" help GNU-compatible initialization of CPP static objects endif # CPLUSPLUS