blob: af36e35750579f881df2f2c064c58521150e785c [file] [log] [blame]
# 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