2019-11-01 20:45:29 +08:00
|
|
|
# C++ configuration options
|
2018-10-24 00:20:51 +08:00
|
|
|
|
|
|
|
# Copyright (c) 2018 B. Leforestier
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
2019-05-16 05:01:58 +08:00
|
|
|
menuconfig CPLUSPLUS
|
|
|
|
bool "C++ support for the application"
|
2018-10-24 00:20:51 +08:00
|
|
|
help
|
|
|
|
This option enables the use of applications built with C++.
|
|
|
|
|
2019-05-16 05:01:58 +08:00
|
|
|
if CPLUSPLUS
|
|
|
|
|
2018-10-24 00:20:51 +08:00
|
|
|
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"
|
kconfig: Replace some single-symbol 'if's with 'depends on'
I think people might be reading differences into 'if' and 'depends on'
that aren't there, like maybe 'if' being needed to "hide" a symbol,
while 'depends on' just adds a dependency.
There are no differences between 'if' and 'depends on'. 'if' is just a
shorthand for 'depends on'. They work the same when it comes to creating
implicit menus too.
The way symbols get "hidden" is through their dependencies not being
satisfied ('if'/'depends on' get copied up as a dependency on the
prompt).
Since 'if' and 'depends on' are the same, an 'if' with just a single
symbol in it can be replaced with a 'depends on'. IMO, it's best to
avoid 'if' there as a style choice too, because it confuses people into
thinking there's deep Kconfig magic going on that requires 'if'.
Going for 'depends on' can also remove some nested 'if's, which
generates nicer symbol information and docs, because nested 'if's really
are so simple/dumb that they just add the dependencies from both 'if's
to all symbols within.
Replace a bunch of single-symbol 'if's with 'depends on' to despam the
Kconfig files a bit and make it clearer how things work. Also do some
other minor related dependency refactoring.
The replacement isn't complete. Will fix up the rest later. Splitting it
a bit to make it more manageable.
(Everything above is true for choices, menus, and comments as well.)
Detected by tweaking the Kconfiglib parsing code. It's impossible to
detect after parsing, because 'if' turns into 'depends on'.
Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2020-02-08 10:45:50 +08:00
|
|
|
depends on !MINIMAL_LIBC
|
2018-10-24 00:20:51 +08:00
|
|
|
help
|
|
|
|
Link with STD C++ Library.
|
|
|
|
|
2019-08-13 21:17:01 +08:00
|
|
|
if LIB_CPLUSPLUS
|
|
|
|
|
2018-10-24 00:20:51 +08:00
|
|
|
config EXCEPTIONS
|
|
|
|
bool "Enable C++ exceptions support"
|
|
|
|
help
|
|
|
|
This option enables support of C++ exceptions.
|
|
|
|
|
|
|
|
config RTTI
|
|
|
|
bool "Enable C++ RTTI support"
|
|
|
|
help
|
|
|
|
This option enables support of C++ RTTI.
|
|
|
|
|
2019-11-01 17:24:07 +08:00
|
|
|
endif # LIB_CPLUSPLUS
|
2019-08-18 08:13:32 +08:00
|
|
|
|
2019-05-16 05:01:58 +08:00
|
|
|
endif # CPLUSPLUS
|