mirror of
https://github.com/espressif/esp-idf.git
synced 2026-01-21 19:25:53 +00:00
The current config.env.in template cannot be easily extended and shared between cmakev1 and cmakev2. Although the root Kconfig is shared and sources COMPONENT_KCONFIGS_EXCLUDED_SOURCE_FILE and COMPONENT_KCONFIGS_PROJBUILD_EXCLUDED_SOURCE_FILE, these environment variables cannot be set to empty strings. This issue arises unless we also adjust cmakev1 and esp-docs, which use prepare_kconfig_files.py, to properly set COMPONENT_KCONFIGS_EXCLUDED_SOURCE_FILE and COMPONENT_KCONFIGS_PROJBUILD_EXCLUDED_SOURCE_FILE. If an environment variable is set to an empty string and sourced in Kconfig, kconfgen will expand the variable with expandvars(), resulting in an empty value. This expanded variable is then appended to the root Kconfig or the currently processed Kconfig directory path, depending on whether osource or orsource is used, and passed to iglob. The iglog will return the directory as a result, and when Kconfig attempts to open the file, it will encounter an error because it is a directory. To resolve this issue and enable sharing of the root Kconfig file, a new config_buildv2.env.in template has been added, which includes environment variables for the excluded components. For cmakev1, kconfgen will encounter the osource command for COMPONENT_KCONFIGS_EXCLUDED_SOURCE_FILE. Since this variable is not defined in config.env.in, expandvars() will return the environment variable name instead of expanding it, and iglob will not match anything. Because osource is used for excluded components, the non-existent file for osource will be skipped. Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>