[RFC PATCH 4/4] linux/kconfig.h: create two- and three-argument versions of CONFIG_IS_ENABLED
Simon Glass
sjg at google.com
Wed Jun 17 01:31:36 CEST 2020
Hi Rasmus,
On Fri, 12 Jun 2020 at 05:02, Rasmus Villemoes
<rasmus.villemoes at prevas.dk> wrote:
>
> This adds a bunch of preprocessor magic to extend the capabilities of
> CONFIG_IS_ENABLED. The existing semantics of
>
> CONFIG_IS_ENABLED(FOO)
>
> expanding to a 1 or 0 (depending on build context and the defined-ness
> or not of the appropriate CONFIG_FOO/CONFIG_SPL_FOO/CONFIG_TPL_FOO)
> are of course preserved. With this, one is also allowed a two-argument
> form
>
> CONFIG_IS_ENABLED(FOO, (something))
>
> which expands to something precisely when CONFIG_IS_ENABLED(FOO) would
> expand to 1, and expands to nothing otherwise. It is, in other words,
> completely equivalent to the three lines
>
> #if CONFIG_IS_ENABLED(FOO)
> something
> #endif
>
> The second argument must be parenthesized in order to allow any
> tokens, including a trailing comma, to appear - one use case for this
> is precisely to make it a bit more ergonomic to build an array and
> only include certain items depending on .config. That should increase
> both readability and not least "git grep"ability.
>
> A third variant is also introduced,
>
> CONFIG_IS_ENABLED(FOO, (xxx), (yyy))
>
> which corresponds to
>
> #if CONFIG_IS_ENABLED(FOO)
> xxx
> #else
> yyy
> #endif
>
> Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk>
> ---
> include/linux/kconfig.h | 48 ++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 45 insertions(+), 3 deletions(-)
Reviewed-by: Simon Glass <sjg at chromium.org>
See also this:
http://patchwork.ozlabs.org/project/uboot/patch/20200522020223.230834-2-sjg@chromium.org/
but I think your idea is a lot nicer.
Regards,
Simon
More information about the U-Boot
mailing list