c++: kconfig: Fix choice dependencies and use 'menuconfig' symbol

- Make the 'C++ Standard' choice depend on CPLUSPLUS, so that it only
   shows up when C++ support is enabled.

   Also check that CPLUSPLUS is enabled before checking the standard in
   the top-level CMakeLists.txt, to avoid triggering an assert.

 - The 'C++ Options' menu now contains just CPLUSPLUS and its indented
   children. Remove one menu level by removing the menu and turning
   CPLUSPLUS into a 'menuconfig' symbol. Also change the prompt from
   "Enable C++ support for the application" to just "C++ support for the
   application", to make it consistent with e.g. "Logging".

 - Factor out the common CPLUSPLUS dependency with an 'if CPLUSPLUS'.

 - Order symbol properties more consistently with other Kconfig files,
   with the prompt at the top, etc.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
This commit is contained in:
Ulf Magnusson 2019-05-15 23:01:58 +02:00 committed by Kumar Gala
commit 9b6c2f4bf3
2 changed files with 30 additions and 31 deletions

View file

@ -6,13 +6,13 @@
# SPDX-License-Identifier: Apache-2.0
#
menu "C++ Options"
config CPLUSPLUS
bool "Enable C++ support for the application"
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
@ -48,24 +48,21 @@ config STD_CPP2A
endchoice
config LIB_CPLUSPLUS
depends on CPLUSPLUS
bool "Link with STD C++ library"
help
Link with STD C++ Library.
config EXCEPTIONS
depends on CPLUSPLUS
depends on NEWLIB_LIBC
select LIB_CPLUSPLUS
bool "Enable C++ exceptions support"
select LIB_CPLUSPLUS
depends on NEWLIB_LIBC
help
This option enables support of C++ exceptions.
config RTTI
depends on CPLUSPLUS
select LIB_CPLUSPLUS
bool "Enable C++ RTTI support"
select LIB_CPLUSPLUS
help
This option enables support of C++ RTTI.
endmenu
endif # CPLUSPLUS