| # 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 |