Kconfig: Support macro expansion within symbol names
Update Kconfiglib to upstream revision 2be02fac78527 to add support for expanding macros within symbol names, extending the existing Kconfig preprocessor (https://github.com/torvalds/linux/blob/master/Documentation/kbuild/ kconfig-macro-language.txt). Some minor optimizations are included as well. This makes it possible to add Kconfig templates to avoid code repetition, e.g. like below: Kconfig.log_template: choice prompt "Max compiled-in log level for $(module-str)" config $(module)_LOG_LEVEL_OFF bool "Off" config $(module)_LOG_LEVEL_ERR bool "Error" config $(module)_LOG_LEVEL_WRN bool "Warning" config $(module)_LOG_LEVEL_INF bool "Info" config $(module)_LOG_LEVEL_DBG bool "Debug" endchoice config $(module)_LOG_LEVEL int default 0 if $(module)_LOG_LEVEL_OFF default 1 if $(module)_LOG_LEVEL_ERR default 2 if $(module)_LOG_LEVEL_WRN default 3 if $(module)_LOG_LEVEL_INF default 4 if $(module)_LOG_LEVEL_DBG Using the template: module = FOO module-str = foo source "Kconfig.log_template" ... module = BAR module-str = bar source "Kconfig.log_template" This feature might create harder-to-read Kconfig files if abused, so it should probably be used sparingly. Fixes: #9761 Signed-off-by:Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
Loading
Please sign in to comment