Configuration Report

The esp-idf-kconfig provides an advanced configuration report featuring a complete information about the configuration process of the project.

Verbosity Levels

Configuration report provides three configuration verbosity levels:

  • quiet - Configuration report is printed only if there are any errors.

  • default - Configuration is printed every time, but without additional information for the user.

  • verbose - Configuration report is printed every time with additional information (error/warning/info statements explanation, link to the documentation etc.).

Verbosity can be set via KCONFIG_REPORT_VERBOSITY environment variable.

Report Status

Configuration report also informs the user about overall status of the configuration:

  • Finished successfully - Configuration process was successful.

  • Finished with notifications - Configuration process was successful, but there are some minor notifications.

  • Finished with warnings - Configuration process was successful, but there are some warnings.

  • Failed - Configuration process failed.

Note

The difference between Finished with notifications and Finished with warnings is in the probability that the configuration is correct. In the first case, the configuration is most likely correct, although some situations requiring attention were detected. In the second case, there is a higher probability that the configuration is incorrect and/or the problems found need user intervention.

Structure of the Configuration Report

Configuration report consists of a header and zero or more report areas.

Header includes general information about the configuration process such as:

  • parser version

  • verbosity level

  • configuration status

Every report area covers a specific type of information/warning/error message. Currently, the following report areas are supported:

Multiple Symbol or Choice Definition

When a config option or choice with the same name is defined multiple times, the configuration report will show a message with the name of the symbol or choice and definition locations.

Multiple definitions of config option or choice of the same name are allowed in Kconfig language, but it may happen that e.g. two config options with the same name are defined unintentionally in different components and used in different context. This situation may result in an unpredictable behavior, which is hard to debug. Because of that, esp-idf-kconfig notifies the user about such situations.

Warning

Currently, multiple definitions of the same config option or choice is considered only a notification, not a warning. In the following version of esp-idf-kconfig, this may change.

Note

If you intentionally want to define config name or choice with the same name multiple times, you can suppress this notification by # ignore: multiple-definition comment in the Kconfig file. It is enough to put this comment only in one of the definitions.

config STARSHIP_NAME # ignore: multiple-definition
    string "Name your starship"
    default "USS-Enterprise"

# (...)

config STARSHIP_NAME # here, the pragma is not needed (but it is allowed)
    string "Name your starship"
    default "Millennium Falcon"