Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Features #112

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Features #112

wants to merge 2 commits into from

Conversation

sjg20
Copy link

@sjg20 sjg20 commented Jan 14, 2022

Here are a few useful features I needed with working with Zephyr OS.

Projects such as Zephyr OS have a module system, where Kconfig files can
exist in multiple directories that are effectively merged together by the
build system. In other words, one project directory can refer to
subdir/Kconfig where subdir/ is actually in another project directory.

As an example:

   zephyr/             - main source directory
      Kconfig          - main Kconfig file

   module/ec           - module directory
      motion/          - motion subsystem
         Kconfig       - Kconfig file for motion subsystem

Wtih the above, we might have, in zephyr/Kconfig:

   source "motion/Kconfig"

and it automatically locates the file in the module/ec directory.

Add support for this, by allowing a list of search paths to be supplied to
Kconfiglib.

Signed-off-by: Simon Glass <[email protected]>
When parsing Kconfig which include macros it is currently necessary to
provide a value for all macros in advance. This may not be possible in
some cases, e.g. when the caller is performing checks on the Kconfig
options but is not running a full build of the project.

Add an option to support this. This allows parsing of Zephyr Kconfig
files without specifying a particular board, etc.

Signed-off-by: Simon Glass <[email protected]>
sjg20 added a commit to sjg20/zephyr that referenced this pull request Jan 28, 2022
When parsing Kconfig which include macros it is currently necessary to
provide a value for all macros in advance. This may not be possible in
some cases, e.g. when the caller is performing checks on the Kconfig
options but is not running a full build of the project.

Add an option to support this. This allows parsing of Zephyr Kconfig
files without specifying a particular board, etc.

This corresponds to upstream PR:

   ulfalizer/Kconfiglib#112

but it looks like the project might be dead as there is no activity in
18 months.

Signed-off-by: Simon Glass <[email protected]>
Change-Id: Icf36da1e47fb7293f3d8bc3569affd7cd7598100
coreboot-org-bot pushed a commit to coreboot/chrome-ec that referenced this pull request Jan 28, 2022
Add some changes to allow this library to work with Zephyr:

- Ability to have Kconfig files in multiple projects directories
- Ability to ignore variable expansion failures, since there are so many
   Kconfig variables in Zephyr

These changes have been sent upstream here:

   ulfalizer/Kconfiglib#112

and to Zephyr here:

zephyrproject-rtos/zephyr#42233

so this also includes the one Zephyr-local commit:

   66d1b3ce106 kconfig: kconfiglib.py: Backup files only

All three commits are based on Kconfiglib 14.1.0

BUG=b:181323955
BRANCH=none
TEST=python3 util/test_kconfig_check.py

Signed-off-by: Simon Glass <[email protected]>
Change-Id: Iac24a90fe3707cacab40d45210addc663bb17f60
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3390708
Reviewed-by: Jack Rosenthal <[email protected]>
@jackrosenthal
Copy link

Rather unfortunately, it appears the original author of Kconfiglib disappeared. The Zephyr project has been granted ownership of the PyPI package via PEP-541 request, and I'm going to do a release based on a new repository in the zephyrproject-rtos organization here: https://github.com/zephyrproject-rtos/Kconfiglib

➡️ Action required: @sjg20 Are you able to re-open your pull request on the new repository?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants